代码之家  ›  专栏  ›  技术社区  ›  Evan Carroll

javascript regex蒸腾器?

  •  0
  • Evan Carroll  · 技术社区  · 6 年前

    这个问题是关于蒸腾器或蒸腾器扩展的。 RegExp() 对象创建是 massively slower and constructs the RegExp on each iteration .

    似乎javascript不允许在其regex中使用不敏感的空白。JavaScript是否有允许类似 /x 来自Perl,在regex中。

    X /xx 单个“/x”告诉正则表达式分析器 忽略大多数 既不是反斜杠也不在带括号字符内的空白 班级。 您可以使用它将正则表达式分解为更多 可读部分。此外,“”字符被视为元字符 引入运行到模式结束分隔符的注释,或者 如果图案延伸到下一行,则到达当前行的结尾。 因此,这非常类似于普通的Perl代码注释。(你可以 只有在注释之前才在注释中包含结束分隔符 用反斜杠,所以要小心!)

    这可以让你写一些像

    let res = name.match(/^([^\d]*?)(?:\s*[.,]\s*([0-9]+)(?: mo)?)?[.,]?$/);
    

    这样地,

    let res = name.match(/
      ^
      ([^\d]*?)                       # name
      (?:\s*[.,]\s*([0-9]+)(?: mo)?)? # age, mo
      [.,]?                           # trailing dirt
      $
     /);
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   starbelly    6 年前