本文實例分析了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/;//目標字符串不含換行符/nvar 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));//truealert(singleline.test(target));//false
/r/n在windows下代表換行,如果只有1個/n也是一樣的效果。由于target不是以abc開頭的字符串,所以匹配singleline的結果是false;由于target是多行字符串(含有/n),而第2行是以abc開頭,所以匹配multiline結果是true。
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.VeVB.COm/regex/javascript
正則表達式在線生成工具:
http://tools.VeVB.COm/regex/create_reg
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript正則表達式技巧大全》、《JavaScript替換操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript中json操作技巧總結》、《JavaScript錯誤與調試技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答