javascript正則表達(dá)式標(biāo)記中/g /i /m的用法,以及實(shí)例
一,js正則標(biāo)志/g,/i,/m說(shuō)明
1,/g (globle)表示該表達(dá)式將用來(lái)在輸入字符串中查找所有可能的匹配,全文查找出現(xiàn)的所有匹配字符,返回的結(jié)果可以是多個(gè)。如果不加/g最多只會(huì)匹配一個(gè)
2,/i (ignorCase)表示匹配的時(shí)候不區(qū)分大小寫(xiě),
忽略大小寫(xiě),注意僅是忽略大小寫(xiě),并不忽略全半角。
3,/m (mutiple)表示多行匹配,多行查找什么是多行匹配呢?就是匹配換行符兩端的潛在匹配。影響正則中的^$符號(hào)
m 影響 ^、$。
若不指定 m,則:^ 只在字符串的最開(kāi)頭,$ 只在字符串的最結(jié)尾。即:匹配整個(gè)串的開(kāi)始和結(jié)束
若指定 m,則:^ 在字符串每一行的開(kāi)頭,$ 在字符串每一行的結(jié)尾。即:匹配每一行的開(kāi)始和結(jié)束
二,實(shí)例說(shuō)明
1,/g的用法
<script type="text/javascript"> str = "tankZHang (231144)"+ "tank ying (155445)"; res = str.match(/tank/); //沒(méi)有加/g alert(res); //顯示一個(gè)tank res = str.match(/tank/g); //加了/g alert(res); //顯示為tank,tank </script>
2,/i的用法
<script type="text/javascript"> str = "tankZHang (231144)"+ "tank ying (155445)"; res = str.match(/zhang/); alert(res); //顯示為null res = str.match(/zhang/i); //加了/i alert(res); //顯示為ZHang </script>
3,/m的用法
<script type="text/javascript"> var p = /$/mg; var s = '1\n2\n3\n4\n5\n6'; alert(p.test(s)); //顯示為true alert(RegExp.rightContext.replace(/\x0A/g, '\\a')); //顯示\a2\a3\a4\a5\a6 alert(RegExp.leftContext); //顯示為豎的2345 alert(RegExp.rightContext); //顯示為6 var p = /$/g; var s = '1\n2\n3\n4\n5\n6'; alert(p.test(s)); //顯示為true alert(RegExp.rightContext.replace(/\x0A/g, '\\a')); //什么都不顯示 alert(RegExp.leftContext); //顯示為豎的123456 alert(RegExp.rightContext); //什么都不顯示 var p = /^/mg; var s = '1\n2\n3\n4\n5\n6'; alert(p.test(s)); //顯示為true alert(RegExp.rightContext.replace(/\x0A/g, '\\a')); //顯示為1\a2\a3\a4\a5\a6 alert(RegExp.leftContext); //顯示為豎的12345 alert(RegExp.rightContext); //顯示為6 </script>
//從上例中可以看出/m影響的^$的分割方式
上面說(shuō)的三個(gè)例子,/i,/g,/m分開(kāi)來(lái)說(shuō)的,可以排列組合使用的。個(gè)人覺(jué)得/m沒(méi)有多大用處
補(bǔ)充說(shuō)明:
\n匹配一個(gè)換行符。等價(jià)于 \x0a 和 \cJ
rightContext
RegExp.rightContext ($')
該特性是非標(biāo)準(zhǔn)的,請(qǐng)盡量不要在生產(chǎn)環(huán)境中使用它!
rightContext 非標(biāo)準(zhǔn)屬性是正則表達(dá)式的靜態(tài)和只讀屬性,含有最新匹配的右側(cè)子串。 RegExp.$' 是這個(gè)屬性的別名。
語(yǔ)法
RegExp.rightContext
RegExp["$'"]
描述
rightContext 屬性是靜態(tài)的,不是正則表達(dá)式獨(dú)立對(duì)象的屬性。反之,你應(yīng)始終將其使用為 RegExp.rightContext 或者 RegExp["$'"]。
rightContext 屬性的值是只讀的,并且會(huì)在匹配成功時(shí)修改。
你不能使用屬性訪問(wèn)器(RegExp.$')來(lái)使用簡(jiǎn)寫(xiě)的別名,因?yàn)榻馕銎髟谶@里會(huì)將其看做字符串的開(kāi)始,并拋出 SyntaxError。使用 方括號(hào)符號(hào)來(lái)訪問(wèn)屬性。
示例
使用 rightContext 和 $'
var re = /hello/g;
re.test('hello world!');
RegExp.rightContext; // " world!"
RegExp["$'"]; // " world!"
leftContext
非標(biāo)準(zhǔn)屬性是正則表達(dá)式的靜態(tài)和只讀屬性,含有最新匹配的左側(cè)子串。 RegExp.$` 是這個(gè)屬性的別名。
語(yǔ)法
RegExp.leftContext
RegExp['$`']
描述
leftContext 屬性是靜態(tài)的,不是正則表達(dá)式獨(dú)立對(duì)象的屬性。反之,你應(yīng)始終將其使用為 RegExp.leftContext 或者 RegExp['$`']。
leftContext 屬性的值是只讀的,并且會(huì)在匹配成功時(shí)修改。
你不能使用屬性訪問(wèn)器(RegExp.$`)來(lái)使用簡(jiǎn)寫(xiě)的別名,因?yàn)榻馕銎髟谶@里會(huì)將其看做模板字符串的開(kāi)始,并拋出 SyntaxError 。使用 方括號(hào)符號(hào)來(lái)訪問(wèn)屬性。
示例
使用 leftContext 和 $`
var re = /world/g;
re.test('hello world!');
RegExp.leftContext; // "hello "
RegExp['$`']; // "hello "
規(guī)范
非標(biāo)準(zhǔn)。并不是任何現(xiàn)行規(guī)范的一部分。
相關(guān)文章
詳解正則表達(dá)式Matcher類(lèi)中g(shù)roup方法
這篇文章主要介紹了正則表達(dá)式Matcher類(lèi)中g(shù)roup方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08開(kāi)發(fā)過(guò)程最全的正則表達(dá)式匹配中英文、字母和數(shù)字
這篇文章主要介紹了開(kāi)發(fā)過(guò)程最全的正則表達(dá)式匹配中英文、字母和數(shù)字 的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05js正則表達(dá)式中的單行模式與多行模式實(shí)例分析
這篇文章主要介紹了js正則表達(dá)式中的單行模式與多行模式,實(shí)例分析了js正則表達(dá)式中實(shí)現(xiàn)單行模式與多行模式的技巧,需要的朋友可以參考下2015-01-01EditPlus中的正則表達(dá)式實(shí)戰(zhàn)(5)
這篇文章主要介紹了EditPlus中的正則表達(dá)式實(shí)戰(zhàn)(5)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12正則表達(dá)式同時(shí)匹配中英文及常用正則表達(dá)式
這篇文章主要介紹了正則表達(dá)式同時(shí)匹配中英文及常用正則表達(dá)式的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11