正则:描述的是字符的规则,这个验证字符的规则是由你来定义的
match() 字符串方法:支持正则,可以通过正则让你把字符串里面满足规则的字符筛选出来并放在一个数组里面
replace() 字符串方法:支持,替换
正则方法:test() 当验证满足条件的时候返回true,否则返回false
正则方法:exec() 捕获,当捕获到你这个字符串里面有满足条件的,就把捕获到的内容显示在一个数组里面。如果没有找到就返回null
1.正则创建
构造函数方式:new RegExp()
参数1表示你要验证的字符
参数2表示的是修饰符:g 表示全局匹配,i 表示忽略大小写, m表示的是多行匹配
注意点:多行匹配需要在正则里面去写匹配符号,换行符号和其他字符需要在字符串里面
字面量方式: let reg = /a/i
//构造函数方式
let reg = new RegExp('a', 'i')
console.log(reg.test('a')) //true
console.log(reg.exec('a')) //['a']
//字面量方式
//表示验证的是a和b
let reg = /ab/i
//表示的是验证的是a或者b
let reg = /a|b/
2.正则量词
量词:指的是限定词,也叫限定符,可以指定正则表达式的一个给定组,必须要出现多少次才能满足匹配。通过量词可以设置一个内容出现的次数。
注意点:量词只对它前边的一个内容起作用。 都是必须连续出现
{n}:匹配前一个字符正好出现n次
{n,}:匹配前一个字符出现n次以上,没有限制
{n,m}:匹配一个字符出现n到m次
正则模式:
惰性模式,就是匹配到了就不会再进行匹配
贪婪模式,就是尽可能的匹配到所有的
^ 表示开头匹配
$ 表示结尾匹配
() 表示分组
*表示允许的次数是0 至 正无穷次,有没有都行
+表示允许的次数是1 至 正无穷次,至少有一个
? 表示允许的次数是0至1,最多出现1次
3.正则字符类
| 表示的是或的关系
[] 表示的也是或的关系,[] 里面可以使用-表示某个字符到某个字符,指的是一个范围,就是把或进行简化了
[^a-d]表示的是排除某种字符的可能
4.正则元字符
\d —— [0-9] 数字
\w —— [A-z0-9_] 数字,字母,下划线
\s —— 空白字符
\b —— 匹配单词边界
\D —— [^0-9] 非数字
\W —— [^a-z0-9_] 非数字,字母,下划线
\S —— 非空白字符
. 表示任意字符,不能匹配\n 换行符号
注意点:如果要匹配点的话,需要使用转义字符 \.
5.正则表达式典型例子——匹配手机号
手机号(11位)
第一位必须是以1开头 ^1
第二位范围是3-9 [3-9]
第三位范围 [0-9] \d {9}
reg = /^1[3-9]\d{9}$/
邮箱地址正则封装:reg = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/