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