#正则表达式
一 定义
1.正则表达式创建
- (1)构造函数创建
var reg=new RegExp(正则内容,修饰符); - (2)字面量创建
var reg=/正则内容/修饰符; - (3)修饰符:
1° i:不区分大小写
2° g:全局匹配
3° m:多行匹配 - (4)正则对象的方法
1°test()
判断test()参数中的字符串中有没有匹配正则表达式内容。
例:var reg=/a/i; (是否存在"a",不区分大小写)
2°exec()
exec 返回一个数组,表示exec()参数中字符串匹配正则的内容 不会全局匹配
例:var arr=reg.exec(“bcAdfa”); - (5)字符串方法
①search() 查找
只能找到第一个不能全局匹配,返回找到内容下标。
②match() 查找
把找到匹配的元素用数组罗列,如果没有全局匹配。与exec相同。
③replace() 替换
当使用全集匹配时,可以完成所有匹配元素的替换
④split() 切割
2.元字符
- (1). 元字符
. 匹配任何一个字符,是一个通配符。
. 把通配符 . 转译为字符型 . - (2)[] 元字符
①匹配[]内所有元素的任意一个。只通配一个元素。
②写在[]中的 , 就是转义字符,不是通配符。
③如果匹配括号,所有括号必须加上 \转义成字符型。
④两个\在字符或者正则表达式的[]中都是一个\。
⑤[0-20] ===[0-2 0];
⑥在[]内第一个字符是^,表示后边的字符不用,取反。
1° [^]不要
2°如果不是第一个字符,则作为使用。 - (3)转义字符类
①\w查找单词字符。与[a-zA-Z_0-9]相同
②\W查找非单词字符。[^0-9 A-Za-z_]相同
③\d查找数字。与[0-9]相同
④\D查找非数字字符。与[^0-9]相同
⑤\s查找空白字符。
⑥\S查找非空白字符。 - (4)重复匹配
①{n} 普通重复
②{min,max}g 贪婪匹配:尽可能满足最大的max匹配
1°/a {0,1}/g /a?/g 可以有1个,也可以没有。
2°/a{1,}/g /a+/g 匹配至少1个,也可以多个。
3°/a{0,}/g /a*/g 可以没有,可以有多个。
③非贪婪匹配
在* 或者 + 或者{num,} 后面加 ? 来匹配最少的部分。
④选择匹配
/ab|cd/ ab或者cd - (5)起始结束符
^ :起始符 表示开始从这个匹配。
$ : 结束符 要求必须以某个元素结束。 - (6)() 群组
①当使用match时,如果使用群组,如果不加g,可以将每个群组列表在数组的下标1开始的元素,加g就不能找到群组的内容。
②在replace中如果不使用群组,后面的函数中参数的第一位是符合正则的内容,第二位是这个字符的下标。
③如果使用群组,后面的函数中参数的第一位是符合正则的内容,第二位是符合内容的第一个群组,第三位是符合内容的第二个群组。 - (7)?= 断言
①前断言:
?= 查找某个元素,条件为紧随其后是某个字符。
?! 查找某个元素,条件为紧随其后不是某个字符。
②后断言:(?<=)查找某个元素,条件为其前面必须为某条件的元素。
(?<!)查找某个元素,条件为其前面必须不是某条件的元素。 - (8)中文匹配
[\u4e00 - \u9fa5]