正则表达式
正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法,以及 String 的 match、matchAll、replace、search 和 split 方法。
定义正则表达式语法
使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:
const 变量名 = /表达式/
脚本加载后,正则表达式字面量就会被编译。当正则表达式保持不变时,使用此方法可获得更好的性能。
或者调用RegExp对象的构造函数,如下所示:
const 变量名 = new RegExp("表达式");
判断是否有符合规则的字符串:
正则表达式可以被用于 RegExp 的 exec 和 test (en-US) 方法以及 String 的 match (en-US)、replace、search (en-US) 和 split (en-US) 方法。这些方法在 JavaScript 手册中有详细的解释。例如,test() 方法,执行检索,用来查看正则表达式与指定的字符串是否匹配。如果匹配返回true,否则false
| 方法 | 描述 |
|---|---|
exec | 一个在字符串中执行查找匹配的 RegExp 方法,它返回一个数组(未匹配到则返回 null)。 |
test | 一个在字符串中测试是否匹配的 RegExp 方法,它返回 true 或 false。 |
match | 一个在字符串中执行查找匹配的 String 方法,它返回一个数组,在未匹配到时会返回 null。 |
matchAll | 一个在字符串中执行查找所有匹配的 String 方法,它返回一个迭代器(iterator)。 |
search | 一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回 -1。 |
replace | 一个在字符串中执行查找匹配的 String 方法,并且使用替换字符串替换掉匹配到的子字符串。 |
split | 一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的 String 方法。 |
元字符
边界符
⚫ 正则表达式中的边界符(位置符)用来 **提示字符所处的位置,**主要有两个字符
如果 ^ 和 $ 在一起,则表示 **精确匹配。 **
量词
⚫ 量词用来 设定某个模式出现的次数
注意: 逗号左右两侧千万不要出现空格
字符类
[ ] 匹配字符集合
⚫ 把多个选项,写在[ ]里面
⚫ 后面的字符串只要包含 abc 中任意一个字符,都返回 true
[ ] 里面加上 - 连字符
⚫ 使用连字符 - 表示一个范围
⚫ 比如:
➢ [a-z] 表示 a 到 z 26个英文字母都可以
➢ [a-zA-Z] 表示大小写都可以
➢ [0-9] 表示 0~9 的数字都可以
⚫ 写一个匹配qq号的正则:
[ ] 里面加上 ^ 取反符号
⚫ 比如:
➢ [^a-z] 匹配除了小写字母以外的字符
➢ 注意要写到中括号里面
(4) . 匹配除换行符之外的任何单个字符
(5)预定义类
预定义类:指的是 某些常见模式的简写方式
修饰符
替换 replace 替换
⚫ 语法:
⚫ 返回值:替换完成后的新字符串
修饰符
⚫ 修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等
⚫ 语法:
➢ i 是单词 ignore 的缩写,正则匹配时字母不区分大小写
➢ g 是单词 global 的缩写,匹配所有满足正则表达式的结果