用几行写的JavaScript正则表达式

JavaScript regular expressions written in several lines

本文关键字:JavaScript 正则表达式 几行      更新时间:2023-09-26

我有一些javascript编码风格的问题。由于谷歌关闭Linter,行应该不超过80个字符,但我有一些regexp这是大约120个字符长。当我在regexp中间换行时,它不能正常工作。如何处理呢?

var pattern = /veeery, veeeery looooooooooooooooooong regular expressssssssssssssssssssssssssion/;

一个解决方案是这样做:

var pattern = new RegExp(
   'veeery, veeeery looooooooooooooooooong'
   +' regular expressssssssssssssssssssssssssion'
);

如果你的模式声明是在循环中,这对于正则表达式文字来说是好的,我建议在循环之前移动这个声明,以避免重复创建实例和编译它的成本。

注意转义序列,您必须将'替换为'':以下两个正则表达式是相同的

/'d/g
new RegExp("''d", 'g')

虽然我认为这是一个荒谬的规则,但解决方案是从字符串表达式创建正则表达式。

var regex = new RegExp(
  "first part of long regex" +
  "second part of long regex" +
  "and so on"
);

必须对正则表达式中的转义元字符进行双转义。也就是说,如果你的本地风格的正则表达式是:

var regex = /swing on a '*/;

那么你的字符串需要是:

var regex = new RegExp("swing on a ''*");