用几行写的JavaScript正则表达式

时间:2013-03-18 14:57:59

标签: javascript regex coding-style

我的javascript编码风格有些问题。由于Google Closure Linter,行不应超过80个字符,但我有一些大约120个字符长的正则表达式。当我在正则表达式中间断行时,它无法正常工作。如何处理?

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

2 个答案:

答案 0 :(得分:4)

解决方案是:

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

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

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

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

答案 1 :(得分:0)

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

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 \\*");