正则表达式
正则表达式适用于匹配字符串中字符组合得模式,在js中正则也是对象,一般用来验证表单内容是否符合规范,还常用于过滤替换敏感词,或从字符串中提取特定部分
如何创建
1:let reg=new RegExp(/123/)
2:let reg=/123/
测试正则表达式是否规范
reg.test(要检测得文本),例如reg=/123/reg.test(123)表示true,这个正则表示必须要是包含123
正则表达式的组成
边界符
^ 表示匹配行首的文本(以谁开始)
例如reg=/^abc/表示必须abc开头
$ 表示匹配行尾的文本(以谁结束)
精确匹配
如果^和$在一起表示精准匹配
例如reg=/^abc$/表示必须abc这三个字符串
字符类
[]表示有一系列字符可供选择,只要匹配其中一个就可以了
例如reg=/[abc]/这表示只要包含其中任何一个就可以了
reg=/^[abc]$/这表示三选一只能是其中一个
使用 - 表示范围例如reg=/[a-z]/这表示26个英文字母中任意一个返回true
字符组合
我们可以在中括号[]里面写字符组合来进行匹配
例如:reg=/^[a-zA-Z0-9_-]$/这就表示大小写26字母和0-9下划线短横线匹配任意一个就为真
取反符在中括号里面最前面写上^表示取反,不要和边界符^搞乱
量词符
用来设定某个模式出现的次数
*相当于大于等于0,可以出现0或很多次,例如reg=/^a*$/
+相对于大于等于1,可以出现1和很多次,例如reg=/^a+$/
? 表示出现1或者0次,例如reg=/^a?$/
{3}表示重复三次,例如reg=/^a{3}$/
{3,}表示包裹3和三次以上
{3,16}表示3到16次 包括3和16
reg=/^[a-zA-Z0-9_-]{6,16}$/表示里面的任意字符可以出现6到16次
括号总结
大括号,量词符,里面表示重复次数
中括号字符集合,匹配括号里的任意字符
小括号表示优先级例如reg=/abc{4}/这表示字符串必须包裹abcccc这个完整的字符串.如果想要包裹abcabc则需要小括号reg=/(abc){2}/
预定义类
正则里面的 | 表示或
正则替换replace方法
例如
let str='我是牛逼'
str.replace('被替换的','替换的')
str.replace(/牛逼/,'**')这样只能匹配到第一个
可以使用/牛逼/g 后面加个g可以全局匹配加i可以忽略大小写加gi可以同时兼容,多个敏感词可以用|分隔