この記事の例では、JS 正規表現修飾子での multiline(/m) の使用法を分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
JavaScript の正規表現には 3 つの修飾子 /i、/m、/g があります。 /i は最も一般的に使用され、最もよく理解されているものです。つまり、正規表現は照合時に大文字と小文字が区別されません。
var regex = /abc/i; alert(regex.test("aBc"));//true
/m は、複数行モードの複数行を表します。ターゲット文字列に改行文字 n が含まれていない場合、つまり 1 行しかない場合、/m 修飾子は意味を持ちません。
var multiline = /abc/m; var singleline = /abc/; //目标字符串不含换行符\n var target = "abcabcabc";
正規表現に文字列の先頭または末尾に一致する ^ または $ が含まれていない場合、/m 修飾子は意味を持ちません。
//正则表达式不含^或$ var multiline = /abc/m; var singleline = /abc/; var target = "abcab\ncabc";
つまり、/m 修飾子は、ターゲット文字列に n が含まれ、正規表現に ^ または $ が含まれる場合にのみ機能します。 multiline が false の場合、「^」は文字列の先頭に一致し、「$」は文字列の末尾に一致します。 multiline が true の場合、「^」は文字列の先頭と「n」または「r」の後の位置に一致し、「$」は文字列の末尾と「n」または「r」の前の位置に一致します。
var mutiline = /^abc/m; var singleline = /^abc/; var target = "ef\r\nabcd"; alert(mutiline.test(target));//true alert(singleline.test(target));//false
rn は、ウィンドウの下の改行を表します。n が 1 つだけの場合は、同じ効果があります。ターゲットは abc で始まる文字列ではないため、単一行のマッチングの結果は false になります。ターゲットは複数行の文字列 (n を含む) であり、2 行目が abc で始まるため、複数行のマッチングの結果は true になります。
この記事が JavaScript プログラミングのすべての人に役立つことを願っています。
JS 正規表現修飾子における multiline(/m) の使用分析に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。