正则学习(十二)——操作符拓展

163 阅读1分钟

前言

上节介绍了操作符及其优先级,本节就拓展一下操作符的用法,介绍几种情况的用法。

匹配整体

当我们想要匹配整体的时候,需要在开头加上^结尾加上,比如/123,比如/^123/。如果我们想要匹配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}+/

image.png 提示前面没有东西去重复,依旧用括号将两个量词分隔开。

      const reg = /(1{2})+/;
      const str = '1111';
      console.log(reg.test(str)); //true

转义

当我们去使用一些特殊字符时,因为跟正则中的符号一样,所以需要用来转义说明这是字符,而不是符号,这些字符统称为元字符。比如^、$、|等,这些元字符并不需要都转义,有些情况可以不用转义,具体的规则可以总结一下几种:

  • 分组相关的,在分组中^、-需要进行转义,比如[^],^必须转义。
  • 量词。如果我们想要匹配‘{1}’,前面需要加上转义符,/{1}/。
  • 括号前后转义,=、!等字符,与括号相邻时需要转义,/=(2)/。 元字符是否转义直接影响到我们的匹配结果,常见的元字符我们还是要了解的。

总结

操作符使用不当,我们的正则结果肯定不对甚至是报错,所以在用操作符之前要搞清楚我们具体想要的效果。