什么是正则表达式
正则表达式由字符类 元字符 和量词组成,通常用来帮程序猿按照一定的规则来筛选数据。
字符类
把字符放到[]中就形成了字符类,可以匹配到字符类中包含的所有字符,比如[abc],就会匹配有没有包含abc中的一个 abc这个字符类只占1位,另外[^]是取反,也就是匹配不包含字符类的字符串
常用元字符
. 匹配的是任意字符,除了换行符和终止符以外的字符
\w 相当于[a-zA-Z0-9]
\W 相当于[^a-zA-Z0-9]
\d 相当于[0-9]
\D 相当于[^0-9]
\s 任意的空白符
\S 除了空白符
量词
{n} 表示重复的次数
{n,m} 表示最少出现n次,最多m次
{n,} 表示最少出现n次
? 表示出现0次或者1次{0,1} 正则默认贪婪模式(趋向最大长度匹配,一直匹配到无法匹配位置,非贪婪是匹配到结果就好,最少的匹配长度。),在量词后追加 ?号就是费贪婪模式
* 表示最少出现0次{0,}
+ 表示最少出现1次{1,}
/^…$/ 以什么什么开始到什么什么结束
| 候选 相当于 或
修饰符
g 全局匹配
i 忽略大小写
正则表达式的定义和方法
定义
1.直接通过字面量
var reg= /正则/修饰符
2.通过new RegExp
var reg=new RegExp(“正则”,“修饰符”) 修饰符可以不写
不同点:字面量的方法不能接受变量
方法
1.test()
正则表达式.test(字符串)
返回的值是布尔值 满足true 不满足false
2.exec()
正则表达式.exec(字符串)
返回的值 能匹配到返回数组 否则返回Null
3.replace(正则,替换的内容)
分组
正则里的()是用来分组的
取分组中的内容:
使用RegExp.$1 1指的是分组的序号
需要的条件:
1.正则中需要有分组
2.运行一下正则
3.使用RegExp.$1 去取分组中的内容