一、新建
1、RegExp构造函数 var re = new RegExp("a");
2、使用字面量(常用) var re = /a/;
二、方法
1、test() 返回一个布尔值,方法用于匹配字符串,匹配成功返回true,失败返回false;
2、exec() 返回匹配结果,就返回一个以每个匹配成功的字符串组成的类数组集合,否则返回null, index表示匹配项在字符串中的位置, input表示原字符串;
3、正则.方法(字符串);
三、匹配规则
1、字面量字符 :在正则表达式中,某个字符只表示它字面的含义,比如/a/匹配a,数字、大小写、符号;
2、元字符 :除字面量字符以外,还有一部分字符有特殊含义,不代表字面意思,叫“元字符”。如果要匹配他们本身,需要在他们前面加上反斜杠进行转义,比如匹配加号,就要写成\+;
●正则中需要用斜杠转义的字符:^ . [ ] $ ( ) | * + ? { } \\
1)点字符 匹配除回车\r 、换行\n 、行分隔符\u2028、 段分隔符\u2029以外的所有字符;
2)位置字符 ^表示字符串的开始位置,$ 表示字符串的结束位置;
3)竖线符号 在正则中表示“或关系”即a|b表示匹配a或b;
●如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次;
3、重复类:模式的精确匹配次数,用大括号{}表示,{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次;
4、量词符
●? 问号表示某个模式出现0次或1次,等同于{0,1} 最多一次;
●* 星号表示某个模式出现0次或多次,等同于{0,} 无影响;
●+ 加号表示某个模式出现1次或多次,等同于{1,} 至少一次;
5、字符类:表示有一系列可供选择,只要匹配其中一个就可以,所有可供选择的字符都放在方括号里,如[abc]表示a、b、c之中任选一个匹配
●脱字符^ 如果方括号内第一个字符是[^],则表示除了字符类中的字符,其他字符都可以匹配,如[^abc]表示除了a、b、c之外都可以匹配;
●连字符- : 对于连续序列的字符,连字符用来提供简写形式,表示字符的连续范围,如[abc]可以写成[a-c] 、[0123456789] 可以写成[0-9] 、[A-Z]表示26个大写字母,中文[\u4e00-\u9fa5];
6、修饰符:修饰符表示模式的附加规则,放在正则模式的最尾部,修饰符可以单个使用,也可以多个一起使用
●g 默认情况下,第一次匹配成功后,正则对象就停止向下匹配,g修饰符表示全局匹配;
●i 默认情况下,正则对象区分字母的大小写,加上修饰符以后表示忽略大小写;
●m 表示多行模式,会修改^和$的行为,默认情况下,^ 和$匹配字符串的开始处和结尾处,加上m修饰符后,^和$会识别换行符\n;
7、预定义模式:指某些常见模式的简写方式
●\d 匹配0~9之间的任一数字,相当于[0-9];
●\D 匹配所有0~9以外的字符,相当于[^0-9];
●\w匹配任意的字母、数字和下划线,相当于[a-Za-z0-9_];
●\W出所有字母,数字和下划线以外的字符,相当于[^a-Za-z0-9_];
●\s匹配空格,包括制表符、空格符、断行符等;
●\S匹配非空格的字符;
●\b匹配单词的后边界;
●\B匹配非单词边界;
8、特殊字符
●[\b]匹配退格键
●\n匹配换行符
●\r匹配回车键
●\fpip换页符
●\t查找制表符rab