首頁 >web前端 >js教程 >JS正規表示式修飾符中multiline(/m)用法分析

JS正規表示式修飾符中multiline(/m)用法分析

高洛峰
高洛峰原創
2017-01-09 15:36:491204瀏覽

本文實例分析了JS正規表示式修飾符中multiline(/m)用法。分享給大家參考,具體如下:

JavaScript正規表示式有3種修飾符/i、/m和/g。 /i是我們最常用,也是最好理解的,代表正規表示式匹配的時候不區分大小寫。

var regex = /abc/i;
alert(regex.test("aBc"));//true

   

/m代表多行模式multiline,如果目標字串中不含有換行符n,即只有一行,那麼/m修飾符就沒有任何意義。

var multiline = /abc/m;
var singleline = /abc/;
//目标字符串不含换行符\n
var target = "abcabcabc";

   

如果正規表示式中不含有^或$符合字串的開頭或結尾,則/m修飾符沒有任何意義。

//正则表达式不含^或$
var multiline = /abc/m;
var singleline = /abc/;
var target = "abcab\ncabc";

   

也就是說只有當目標字串含有n,而且正規表示式中含有^或$的時候,/m修飾符才有作用。如果 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在windows下代表換行,如果只有1個n也是一樣的效果。由於target不是以abc開頭的字串,所以匹配singleline的結果是false;由於target是多行字串(含有n),而第2行是以abc開頭,所以匹配multiline結果是true。

希望本文所述對大家JavaScript程式設計有所幫助。

更多JS正規表示式修飾符中multiline(/m)用法分析相關文章請關注PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn