正则表达式RegExp
常用的几种方法
- re.test(str)
判断str是否满足正则条件,若满足,则返回true,不满足返回false。 - str.search(re)
正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1。 - str.match(re)
正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null。 - str.replace(re,新的字符串)
正则去匹配字符串,匹配成功的字符去替换成新的字符串。replace第二个参数可以是字符串,也可以是一个回调函数。回调函数的第一个参数就是匹配成功的字符。
把正则的整体叫做母亲,把左边第一个小括号里面的正则叫做第一个孩子,第二个小括号就是第二个孩子。
回调函数中第一个参数是母亲,第二个参数是第一个孩子,第三个参数是第二个孩子。
常见的转义字符
\s:空格
\S:非空格
\d:数字
\D:非数字
\w:字符(数字、字母、下划线)
\W:非字符
\b:独立的部分(起始,结束,空格)
\B:非独立的部分
. :匹配任意字符
. :真正的点
\1:重复子项
字符类
一组相似的词
- [ ] 中括号的整体代表一个字符,匹配中括号内的任意一个字符。
- 排除:^ 如果^写在[ ]里面的话,就代表排除。
- 范围:[0-9],[a-z],[a-z0-9A-Z]…匹配范围
- ^:正则的最开始位置,代表起始的意思
- $:正则的最后位置,代表结束的意思
量词
匹配不确定的位置
- + :至少出现一次
- ?:出现0次或者1次
- * :至少出现0次
- {4,7 }:最少出现4次,最多出现7次
- {4,}:最少出现4次
- {4}:正好出现4次
正则中其他相关知识点
- 正则中的默认:是区分大小写的;如果不区分大小写的话,在正则的最后加标识i。
e.g. var re = /b/i ; 相当于 var re = new RegExp(‘b’ , ‘i’) ;
匹配字符b,不区分大小写。
正则表达式例子
- re = /\d+/g 全局匹配数字类型,至少出现一次
- 匹配中文:[\u4e00-\u9fa5]
- 行首行尾空格:^\s*|\s*$
- Email:^\w+@[a-z0-9]+(.[a-z]+){1,3}$
- 网址:[a-zA-Z]+://][^\s]*
- QQ号:[1-9][0-9]{4,9}
- 邮政编码:[1-9]\d{5}
- 身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x