正则
- 正则表达式,又名 “规则表达式”
- 由我们自己来书写 “规则”,专门用来检测 **字符串** 是否符合 “规则” 使用的
字面量创建
- 下面就是字面量创建一个正则表达式
var reg = /abcdefg/
- 这个正则表达式就可以去检测字符串了
构造函数创建
- 下面就是构造函数创建一个正则表达式
var reg= new RegExp('abcdefg')
元字符
- “.”: 匹配非换行的任意字符
- “\”: 转译符号,把有意义的 **符号** 转换成没有意义的 **字符**,把没有意义的 **字符** 转换成有意义的 **符号**
-“\s”: 匹配空白字符(空格/制表符)
-“\S”: 匹配非空白字符
-“\d”: 匹配数字
-“\D”: 匹配非数字
-“\w”: 匹配数字字母下划线
-“\W”: 匹配非数字字母下划线
限定符
- “*”: 前一个内容重复至少 0 次,也就是可以出现 **0 ~ 正无穷** 次
- “+”: 前一个内容重复至少 1 次,也就是可以出现 **1 ~ 正无穷** 次
- “?”: 前一个内容重复 0 或者 1 次,也就是可以出现 **0 ~1** 次
- “{n}”: 前一个内容重复 n 次,也就是必须出现 **n** 次
- “{n,}”: 前一个内容至少出现 n 次,也就是出现 **n ~ 正无穷** 次
- “{n,m}”: 前一个内容至少出现 n 次至多出现 m 次,也就是出现 **n ~ m**次
边界符
- “^”: 表示开头
- “$”: 表示结尾
特殊符号
- “()”: 限定一组元素
- “[]”: 字符集合,表示写在 `[]` 里面的任意一个都行
- “[^]”: 反字符集合,表示写在 `[^]` 里面之外的任意一个都行
- “-”: 范围,比如 `a-z` 表示从字母 a 到字母 z 都可以
- “|”: 或,正则里面的或 `a|b` 表示字母 a 或者 b 都可以
标示符
- “i”: 表示忽略大小写
-这个 i 是写在正则的最后面的
-`/\w/i`
-就是在正则匹配的时候不去区分大小写
- “g”: 表示全局匹配
-这个 g 是写在正则的最后面的
- `/\w/g`
-就是全局匹配字母数字下划线
test
- “test”是用来检测字符串是否符合我们正则的标准
- 语法: `正则.test(字符串)`
- 返回值:boolean
exec
- “exec”是把字符串中符合条件的内容捕获出来
- 语法: `正则.exec(字符串)`
- 返回值:把字符串中符合正则要求的第一项以及一些其他信息,以数组的形式返回
字符串的方法
- 字符串中有一些方法也是可以和正则一起使用的
search
- “search”是查找字符串中是否有满足正则条件的内容
- 语法: `字符串.search(正则)`
- 返回值 : 有的话返回开始索引,没有返回-1
match
- “match”找到字符串中符合正则条件的内容返回
- 语法: `字符串.match(正则)`
- 返回值 :
-没有标示符 g 的时候,是和 exec 方法一样
-有标示符 g 的时候,是返回一个数组,里面是匹配到的每一项
replace
- “replace”是将字符串中满足正则条件的字符串替换掉
- 语法:`字符串.replace(正则,要替换的字符串)`
- 返回值 : 替换后的字符串