闲着绝望,忙着还有希望
推荐正则文档简单正则一手掌握
一,正则的写法
1,字面写法:var p= /xyz/g
2,构造写法:var p=new RegExp(x,g)
两种写法比较:
1,构造写法可以动态传递正则表达式
2,构造写法修饰符放到参数的第二位new RegExp(x,g/i)
注意点:构造写法转义需要双斜杠 \\
例如:new RegExp('^\\d+$') 校验数字
二,常用方法
var str='xxxx'
var p=/xyz/
1,test:p.test(str) //返回true/false 是否存在指定值
2,exec:p.exec(str) //返回匹配的嘻哈数组, 索引0为匹配的第一个, 无匹配返回null
3,match:str.match(p) //返回匹配的数组 ,无匹配返回null
4,replace:str.replace(p,'将要替换的值')
5,split:str.split(p) //返回数组
三,简便缩写
/[a-z]/:小写字母
/[A-Z]/:大写字母
/[A-z]/:大小写字母
/[A-z0-9_]/ == /\w/:数字字母下划线
/[0-9]/ == /\d/:数字
四,特殊字符
本图参考简单正则一手掌握
五,断言
1,/(?=)/:前向断言,根据已知的结尾,获取前面的值
(?!):排除已知的结尾,获取前面的值
例:let str='123456xxx.png789'
利用前向断言将xxx.png改为abc.png
console.log(str.replace(/.{3}(?=.png)/g,'abc'))
2,/(?<=)/:后向断言,根据已知的开头,获取后面的值
(?<!):排除已知的开头,获取后面的值
例:let str='123456xxx.png789'
利用前向断言将xxx.png改为abc.png
console.log(str.replace(/(?<=456).{3}/g,'abc'))
六,好用的几个正则表达式
/^\s\*|\s*$/g://清除开头和结尾的空格
name.replace(/.(?=.)/g,"*")://姓名脱敏