js正則表達式

正則的圖形工具

regexper.com

REGEXP對象

1.字面量聲明正則表達式

var reg=/\bis\b/g;

2.構(gòu)造函數(shù)

var reg=new RegExp('\\bis\\b','g');//反斜線是特殊字符,構(gòu)造函數(shù)的時候要轉(zhuǎn)義

修飾符g,i,m

1.g:global全文搜索,不添加的話,搜索到第一個匹配停止
2.i:ignore case 忽略大小寫,默認大小寫敏感
3.m:multiple lines多行搜索

元字符

正則表達式由兩種基本字符類型組成:原義文本字符和元字符
元字符是在正則表達式中有特殊含義的非字母字符(. * + ? $ ^ | \ () {} [])
?匹配0次或1次
+匹配一次或多次
.匹配0次或多次

在量詞后面加上?之后就是非貪婪模式,默認情況下采用貪婪模式。

分組

使用()可以達到分組的功能,使量詞作用于分組;
使用分組之后可以通過$1,$2來捕獲分組;
如果不想捕獲這個分組,那么只需要在括號內(nèi)加入?:即可。

前瞻

正則表達式從文本頭部向尾部開始解析,文本尾部方向,稱為“前”
前瞻就是在正則表達式匹配到規(guī)則的時候,向前檢查是否符合斷言,后顧/后瞻方向相反。
js不支持后顧
斷言不參與匹配?=正向前瞻 ?!負向前瞻

方法(正則表達式)

1.RegExp.prototype.test(str)
用來測試字符串參數(shù)中是否存在匹配正則表達式模式的字符串

在用test方法時,如果正則的匹配模式是global的話,那么會影響匹配結(jié)果(lastIndex會返回最后一次匹配時的結(jié)果),所以在用test方法時,正則中一般不要加g標志

2.RegExp.prototype.exec(str)
使用正則表達式模式對字符串執(zhí)行搜索,并將更新全局RegExp對象的屬性以反映匹配結(jié)果。
如果沒有匹配的文本則返回null,否則返回一個結(jié)果數(shù)組

方法(字符串)

1.String.prototype.search(reg)
search()方法用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串
方法返回第一個匹配結(jié)果index,查找不到返回-1
search()方法不執(zhí)行全局匹配,它將忽略標志g,并且總是從字符串的開始進行檢索
2.String.prototype.match(reg)
match()方法將檢索字符串,以找到一個或多個與regexp匹配的文本
regexp是否具有標志g對結(jié)果影響很大
3.String.prototype.split(reg)
在一些復(fù)雜的分割情況下我們可以使用正則表達式解決

'a1b2c3d'.split(/\d/);['a','b','c','d']

4.String.prototype.replace()
String.prototype.replace(str,str)
String.prototype.replace(reg,str)
String.prototype.replace(reg,function(){})

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容