1-新建
1.使用字面量(常用)
var re = /a/;
2.RegExp构造函数
var re = new RegExp("a");
2-匹配方法
1.test():返回一个布尔值,方法用于匹配字符串,匹配成功返回true;返回失败false;
console.log(re.text(str));
2.exec():返回匹配结果。,发现匹配,就返回一个以每个匹配成功的字符串
组成的数组,否则返回null。
console.log(re.exec(str));
方法属性:
index 表示匹配想在字符串中的位置
input表示元字符串
3-匹配方法
- match()
接受一个参数,正则去匹配字符串,如果匹配成功就返回匹配成功的数组,如果匹配不成功,就返回null
2 . search()
参数与match相同,返回字符串,中的第一个匹配项的索引,没有匹配项返回-1
3-replace()用于替换接受两个参数,第一个是匹配项,第二个可以是字符串或是一个函数。
4-split 用指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组里。接受两个参数,第一个为指定分隔符,第二个可选,用于指定数组的最大成员数(个别浏览器对该方法有不同解析,注意调试)
3-匹配规则
1-字面量字符 :在正则表达式中,某个字符只表示它字面的含义,比如/a/匹配a。
2-元字符:出字面量字符以外,还有一部分字符有特殊含义,不代表字面意思,叫“元字符”。如果要匹配它们本身,需要在他们面前加上反斜杠进行转义,比如匹配加号,就要写成 +
正则中需要斜杠转义的字符:
^、.、[、]、$、(、)、|、*、+、?、{、}、\\ //
(1---点子符). : 匹配除回车\r 换行\n 行分隔符\u2028,段分割符\2029以外的所有字符
(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之中任选一个匹配
(1--脱字符)如果方括号内第一个字符是[].则表示除了字符串中的字符,其他字符都可以匹配,如:[abc]表示除了a.b.c之外都可以匹配。
(2--连字符-) 对于连续序列的字符,连字符用来提供简写形式,表示字符串的连续范围,如:[abc]可写成[a-c],[01234567889]可写成[0-9],[A-Z]表示26个大写字母
6-修饰符
修饰符b表示模式的附加规则,放在正则模式的最尾部,修饰符可以单个使用也可以多个使用
(1-g)g默认情况下,第一次匹配成功后正则对象就停止向下匹配,g修饰表示全局匹配
(2-i)默认情况下,正则对象区分字母大大小写,加上i修饰符以后表示忽略大小写
(3-m)表示多行模式,会修改和$的行为,默认情况下,和$匹配字符串的开始处和结尾处,加上m修饰符后,^和$会识别换行符\n
7-预定义模式:
指定某些常见模式的简写方式
(1)\d匹配0-9之间的任一数字,相当于[0-9]
(2)\D匹配所有0-9以外的字符,相当于[^0-9]
(3)\w匹配任意的字母,数字和下划线,相当于[A-Za-z0-9_]
(4)\W匹配除字母,数字和下划线,相当于[A-Za-z0-9]
(5)\s匹配空格,包括指标符,空格符,断行符等
(6)\S匹配非空格的字符
(7)\b匹配单词的边界
(8)\B匹配非单词的边界
8-特殊字符
[\b] 匹配退格键
\n匹配换行键
\r匹配回车键
\f匹配换页符
\t查找制表符tab
9匹配符
正则表达式的过好表示分组匹配,括号中的模式可以用来匹配分组的内容