JavaScript與PHP中正則寫法
有個(gè)在線調(diào)試正則的工具,點(diǎn)擊查看工具。下面的所有示例代碼,都可以在codepen上查看到。
1.創(chuàng)建正則表達(dá)式
var re = /ab+c/; //方式一 正則表達(dá)式字面量 var re = new RegExp('ab+c'); //方式二 RegExp對(duì)象的構(gòu)造函
1)正則表達(dá)式字面量在腳本加載后編譯。若你的正則表達(dá)式是常量,使用這種方式可以獲得更好的性能。
2)使用構(gòu)造函數(shù),提供了對(duì)正則表達(dá)式運(yùn)行時(shí)的編譯。當(dāng)你知道正則表達(dá)式的模式會(huì)發(fā)生改變, 或者你事先并不了解它的模式或者是從其他地方(比如用戶的輸入),得到的代碼這時(shí)比較適合用構(gòu)造函數(shù)的方式。
2.正則表達(dá)式中的特殊字符
^ $ * + ? . (x) (?:x) x(?=y) x(?!y) x|y {n} {n,m} [xyz] [^xyz] [b] b B cX d D f n r s S t v w W n 0 xhh uhhhh
3.正則表達(dá)式中的方法
有6個(gè),分別是exec、test、match、search、replace和split。
exec和test的語(yǔ)法都是regexObj調(diào)用,match、search、replace和split的語(yǔ)法都是string調(diào)用。
exec:
方法為指定的一段字符串執(zhí)行搜索匹配操作。它的返回值是一個(gè)數(shù)組或者 null。語(yǔ)法如下:
示例代碼:
var re = /quicks(brown).+?(jumps)/ig; var result = re.exec(’The Quick Brown Fox Jumps Over The Lazy Dog’);
返回結(jié)果:
test:
一個(gè)在字符串中測(cè)試是否匹配的RegExp方法,它返回true或false。語(yǔ)法如下:
match:
一個(gè)在字符串中執(zhí)行查找匹配的RegExp方法,它返回一個(gè)數(shù)組或者在未匹配到時(shí)返回null。
與exec略有不同,首先是調(diào)用方式,math是由字符串調(diào)用,而exec是由RegexObj調(diào)用。
其次,如果表達(dá)式中有“g”標(biāo)記,那么返回一個(gè)匹配的字符串?dāng)?shù)組,如果沒有就會(huì)和exec返回的一樣。下面這個(gè)demo就是有“g”。語(yǔ)法如下:
示例代碼:
var re = /quicks(brown).+?(jumps)/ig; var result = re.exec(’The Quick Brown Fox Jumps Over The Lazy Dog’);
返回結(jié)果:
search:
一個(gè)在字符串中測(cè)試匹配的String方法,它返回匹配到的位置索引,或者在失敗時(shí)返回-1。語(yǔ)法如下:
例如上面的示例代碼如果是調(diào)用search,返回?cái)?shù)據(jù)就是4。
replace:
一個(gè)在字符串中執(zhí)行查找匹配的String方法,并且使用替換字符串替換掉匹配到的子字符串。語(yǔ)法如下:
返回 pattern 的匹配次數(shù)。 它的值將是0次(不匹配)或1次,因?yàn)閜reg_match()在第一次匹配后,將會(huì)停止搜索。
$subject = 'dd133aa2'; $pattern = ’/d+/’; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches);
上面的示例代碼加了參數(shù)“PREG_OFFSET_CAPTURE”,這樣的話,在$matches中會(huì)多一個(gè)偏移數(shù)。例如下面的“2”
preg_match_all:
執(zhí)行一個(gè)“全局”正則表達(dá)式匹配
相關(guān)文章:
1. xml中的空格之完全解說(shuō)2. 匹配模式 - XSL教程 - 43. XML入門的常見問題(四)4. CSS3中Transition屬性詳解以及示例分享5. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法6. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法7. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作?!钡脑幃悊栴}……8. WMLScript的語(yǔ)法基礎(chǔ)9. html小技巧之td,div標(biāo)簽里內(nèi)容不換行10. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯(cuò)誤頁(yè)的問題
