正则表达式:
2种声明方式,var reg = new RegExp(“abc”)
var reg = /abc/
不同之处在于第一种方式可以传参数(var x = “abc”)
转义:
所有在正则里边拥有特殊意义的字符都需要转义
转义方式:在特殊字符前加\(在字符串中也是转义的意思,所以在传参时要写\\d)
eg:
"ac:\"ads\"";
转义字符加特定的字母有特殊的意思:(正则中)
\d 数字;\D 非数字; \s/S 空格/非空格;
\w/W 字符(字母、数字、下划线)/非字符;
\b 独立部分(只要是独立的单词就行,除了\w)(hot-dot) /\bdog\b/;
\B 非独立部分
特殊字符:
/ \
标识:写在//之后或者传第二个参数
i 不区分大小写
g 全局匹配 match方法
m 换行匹配
方法:
正则.test(字符串) 匹配成功返回true
字符串.match(正则) 匹配成功返回(类)数组,否则null
字符串.search(正则) 返回出现的下标
字符串.replace(正则,字符(函数)参数) 正则匹配的替换成第二个参数(可以是函数) 函数的参数第一个是匹配的,第二个是子项
字符串.split(正则)
量词:
{2,5} >=2 <=5 {2} {2,}
在全局匹配的时候只返回一个,加上量词代表限制
/\d{2,5}/ 58a5s589 返回一个包含58 589的数组
几个特殊量词有特殊符号表示:
+ {1,}
? {0,1}
* {0,}
字符集:
代表一个范围
[a-h] [\u4e00-\u9fa5] (汉字匹配)
代表或者
[ab] a或者b
/[ab0-9]/ a或者b或者0-9 0-9是一个整体
除了...之外
[^ab] 除了a和b之外 ^必须放在开头才有意义
子项:
()
match方法如果没有加g,并且你有用()规定子项,则会显示/(a)(b)/
/阿飞(很帅|好屌)/ 可以将|的全局变为一个区间
或者:
|
全局 /阿飞很帅|阿飞很吊/
^ 起始部分 /^[1-9]/ 起始必须是1-9
$ 结束部分 /[1-9]$/ 结束部分必须是1-9
. 匹配所有字符 除了换行(\n \r) 在字符集中是有特殊意义的!
在字符集中具有特殊意义的有: . \ ] - ^(必须开头) /