正则表达式
一、什么是正则
正则 :也叫做规则,让计算机能够读懂人类的规则,一般都是用来操作字符串的
二、正则的写法
var re = //; // 简写 简写比全称性能好
var re = new RegExp(); // 全称 注意:当正则需要传参的时候,一定要用全称的写法
三、正则中的默认
1、正则中的默认 : 区分大小写
如果不区分大小写的话 : 在正则的最后加标识i
var re = //i;
var re = new RegExp('','i');
2、正则中的默认 : 正则匹配成功就会结束,不会继续匹配
如果想全部查找 : 就要加标识 g(全局匹配)
var re = //g;
四、正则中的量词
1、量词的概念 : 匹配不确定的位置,一般用{}来代表
2、{n,m}; // 最少出现n次,最多出现m次
3、{n,}; // 最少出现n次
4、{n}; // 正好出现n次
5、+ 相当于 {1,} // 最少出现1次
6、?相当于 {0,1} // 出现0次,或者1次
7、* 相当于 {0,} // 至少出现0次
8、^ // 如果 ^ 放在正则的最开始位置,就代表起始的意思
9、$ // 如果 $ 放在正则的最后位置,就代表起始的意思
三、正则的常用方法
1、test : 正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假(一般用以做判断的)。—> 返回Boolean类型
test的写法 : 正则.test(字符串);
2、search : 正则去匹配字符串,如果匹配成功就返回匹配成功的位置,如果匹配失败就返回-1 —> 返回Number类型
search的写法 : 字符串.search(正则);
3、match : 正则去匹配字符串,如果匹配成功就返回匹配成功的数字,如果匹配失败就返回null —> 返回Object类型(Array)
match的写法 : 字符串.match(正则);
4、replace : 正则去匹配字符串,匹配成功的字符去替换成新的字符串 —> 返回String类型
replace的写法 : 字符串.replace(正则,新的字符串);
注意:replace 的第二个参数 : 可以是字符串,也可以是一个回调函数,这个回调函数里面的的第一个参数,就是匹配成功的字符
四、匹配子项
1、匹配子项是由小括号来代表的。(小括号还有分组操作的意思)
2、写法 : var re = /(正则第一项)(第二项)(第三项)/;
3、replace : replace的第二个参数如果是一个回调函数的话,那么这个函数的第一个参数是:当前正则的整体;第二个参数是:正则整体的第一项,第三个参数是正则整体的第二项....以此类推
4、match : 只有当match不加全局匹配g的时候,才可以获取到子项的集合
五、正则中常用到的转义字符
. 任意字符 (在正则中的"."代表的是任意字符,而在正则中真正的"."的输写格式是"\.")
\s 空格
\S 非空格
\d 数字
\D 非数字
\w 字符 ( 字母,数字,下划线_ 都是字符)
\W 非字符 ( 特殊字符,汉字等都是非字符)
\b 独立的部分 (起始,结束,空格)
\B 非独立的部分
\1 重复的第一个子项
\2 重复的第二个子项
……
六、正则表达式字符类
1、字符类 : 一组相似的元素,用[]来表示,中括号的整体代表一个字符
写法 : var re = /a[bcd]e/;
2、排除 : 如果 ^ 写在[]里面的话,就代表排除的意思;如果 ^ 放在正则的最开始位置,就代表起始的意思
写法 : var re = /a[^bcd]e/;
3、范围 : 在[]里面写匹配的范围,如a-z代表的是字母a一直到字母z的26个字母
写法 : var re = /a[a-z]b/;