multiline プロパティ
正規表現で使用する multiline フラグ (m) の状態を表すブール値を返します。
rgExp.multiline
引数
- rgExp
必ず指定します。 Regular Expression オブジェクトのインスタンスを指定します。
解説
multiline プロパティは読み取り専用で、正規表現の複数行フラグが設定されているときは true を返し、設定されていないときは false を返します。 m フラグを使用した正規表現オブジェクトを作成すると、multiline プロパティが true になります。 既定値は false です。
multiline が false のとき、"^" で文字列の先頭位置に一致し、"$" で文字列の最終位置に一致します。 multiline が true の場合は、"^" で "\n" または "\r" の直後を含む文字列の先頭位置に一致し、"$" で "\n" または "\r" の直前を含む文字列の最終位置に一致します。
使用例
multiline プロパティの動作の例を次に示します。 以下の関数に m を渡した場合、"while" という単語が "and" に置換されます。 これは、multiline フラグが設定されていて、改行文字の後の行頭に "while" があるためです。 multiline フラグを設定すると、複数行文字列に対して検索を実行できます。
function RegExpMultilineDemo(flag){
// The flag parameter is a string that contains
// g, i, or m. The flags can be combined.
// Check flags for validity.
if (flag.match(/[^gim]/))
{
return ("Flag specified is not valid");
}
// Create the string on which to perform the replacement.
var ss = "The man hit the ball with the bat ";
ss += "\nwhile the fielder caught the ball with the glove.";
// Replace "while" with "and".
var re = new RegExp("^while", flag);
var r = ss.replace(re, "and");
// Output the multiline flag and the resulting string.
var s = "";
s += "Result for multiline = " + re.multiline.toString();
s += ": " + r;
return(s);
}
print (RegExpMultilineDemo("m"));
print (RegExpMultilineDemo(""));