閑著絕望,忙著還有希望
推薦正則文檔簡(jiǎn)單正則一手掌握
一故觅,正則的寫法
1,字面寫法:var p= /xyz/g
2,構(gòu)造寫法:var p=new RegExp(x,g)
兩種寫法比較:
1,構(gòu)造寫法可以動(dòng)態(tài)傳遞正則表達(dá)式
2癣猾,構(gòu)造寫法修飾符放到參數(shù)的第二位new RegExp(x,g/i)
注意點(diǎn):構(gòu)造寫法轉(zhuǎn)義需要雙斜杠 \\
例如:new RegExp('^\\d+$') 校驗(yàn)數(shù)字
二慕蔚,常用方法
var str='xxxx'
var p=/xyz/
1,test:p.test(str) //返回true/false 是否存在指定值
2,exec:p.exec(str) //返回匹配的嘻哈數(shù)組, 索引0為匹配的第一個(gè)巍佑, 無(wú)匹配返回null
3,match:str.match(p) //返回匹配的數(shù)組 茴迁,無(wú)匹配返回null
4,replace:str.replace(p,'將要替換的值')
5,split:str.split(p) //返回?cái)?shù)組
三,簡(jiǎn)便縮寫
/[a-z]/:小寫字母
/[A-Z]/:大寫字母
/[A-z]/:大小寫字母
/[A-z0-9_]/ == /\w/:數(shù)字字母下劃線
/[0-9]/ == /\d/:數(shù)字
四萤衰,特殊字符
本圖參考簡(jiǎn)單正則一手掌握
五堕义,斷言
1,/(?=)/:前向斷言,根據(jù)已知的結(jié)尾脆栋,獲取前面的值
(?!):排除已知的結(jié)尾倦卖,獲取前面的值
例:let str='123456xxx.png789'
利用前向斷言將xxx.png改為abc.png
console.log(str.replace(/.{3}(?=.png)/g,'abc'))
2,/(?<=)/:后向斷言洒擦,根據(jù)已知的開(kāi)頭,獲取后面的值
(?<!):排除已知的開(kāi)頭糖耸,獲取后面的值
例:let str='123456xxx.png789'
利用前向斷言將xxx.png改為abc.png
console.log(str.replace(/(?<=456).{3}/g,'abc'))
六秘遏,好用的幾個(gè)正則表達(dá)式
/^\s\*|\s*$/g://清除開(kāi)頭和結(jié)尾的空格
name.replace(/.(?=.)/g,"*")://姓名脫敏