正则表达式
通过正则规定的语法,写出一个具体的表达式,利用该表达式对某个字符串进行检验,过滤,查找等操作。
一般使用场景
(1)检验数据合法性,即对字符串的格式进行验证,看他是否符合指定的规则
(2)提取数据,即从一个字符串中提取指定的数据
创建正则表达式
1.字面量 var reg = / /
2.构造函数创建正则表达式 var reg2 = new RegExp()
正则表达式的方法
1.test() 用来检测某个字符串是否满足指定规则,返回的是布尔类型的值
2.exec() 用来检测某个字符串是否满足指定规则,如果有满足规则的子字符,返回的是数组,否则返回的是null。
(1):如果正则表达式中没有添加g修饰符,不管调用多少次exec方法,始终返回的是第一个符合条件的数据
(2):如果正则表达式中添加g修饰符,每次调用exec方法,可以按照顺序依次获取满足条件的数据
正则语法
1.边界符: ^ , $ 匹配开头和结尾
reg = /^abc$/ 精准匹配,只有字符串是abc的时候才满足该规则
2.字符集: [ ] 表示一系列的字符可供选择,只要匹配其中一个就可以
reg = /^[0-9]/ 表示以数字开头 /^\b/ 表示匹配一位数字
3.修饰符: i 表示不区分大小写 /^\w/匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
4. ^ 如果出现在[ ] 中,表示取反的意思
reg = /^[^0-9]/ 表示不以数字开头 \d 匹配一个数字字符,等价于 [0-9] \D 匹配一个非数字字符
5. + 表示+号前面的字符至少出现一次
6. | 表示或
7. {} 限定{} 前面某个字符出现的次数范围
8. .* 匹配任意多个字符,属于贪婪匹配
.*? 属于非贪婪模式
9. m 多行匹配 s 匹配包含换行符
10 ? 匹配前面的子表达式零次或一次。
11 * 匹配前面的子表达式任意次