前言
上节介绍了操作符及其优先级,本节就拓展一下操作符的用法,介绍几种情况的用法。
匹配整体
当我们想要匹配整体的时候,需要在开头加上^结尾加上/。如果我们想要匹配1跟2,当我们写出/^1|2$/,此时不会匹配我们想要的结果,因为位置符号比分支符号优先级高,此时匹配到的结果是1开头或2结尾。我们需要加上括号,这样才是我们想要的结果。
const reg = /^1|2$/;
const reg1 = /^(1|2)$/;
const str = '12';
console.log(reg.test(str));//true
console.log(reg1.test(str));//false
竖杠的优先级最低,如果想要一个整体需加上括号。
量词连续
量词连续是指量词后跟量词,当我们用这个写法时,有可能会报错,比如以下正则:
const reg = /1{2}+/
提示前面没有东西去重复,依旧用括号将两个量词分隔开。
const reg = /(1{2})+/;
const str = '1111';
console.log(reg.test(str)); //true
转义
当我们去使用一些特殊字符时,因为跟正则中的符号一样,所以需要用来转义说明这是字符,而不是符号,这些字符统称为元字符。比如^、$、|等,这些元字符并不需要都转义,有些情况可以不用转义,具体的规则可以总结一下几种:
- 分组相关的,在分组中^、-需要进行转义,比如[^],^必须转义。
- 量词。如果我们想要匹配‘{1}’,前面需要加上转义符,/{1}/。
- 括号前后转义,=、!等字符,与括号相邻时需要转义,/=(2)/。 元字符是否转义直接影响到我们的匹配结果,常见的元字符我们还是要了解的。
总结
操作符使用不当,我们的正则结果肯定不对甚至是报错,所以在用操作符之前要搞清楚我们具体想要的效果。