JavaScript Regex在多行格式化

时间:2013-05-03 16:14:02

标签: javascript regex

我有一个非常复杂的JavaScript替换正则表达式函数,我想知道有没有办法在多行上格式化正则表达式代码:

/
(
    ([0-9]{1,2})
    (\/|\.)
    ([0-9]{1,2})
    (\/|\.)
    ([0-9]{2,4})\s
)?
([0-9]{1,2})
:
([0-9]{1,2})
(
    (:|\s)
    ([0-9]{1,2})
)?
/ig

此外,我想询问是否有其他方法可以格式化正则表达式,因此更容易阅读。

2 个答案:

答案 0 :(得分:2)

JavaScript不支持/x标志(允许空格和注释),但您可以使用字符串将表达式拆分为多行。例如:

var re = new RegExp(
     "foo" +
     "bar" +
     "baz",
     "ig");

当然,这样做的缺点是正则字符串引用正则表达式(双重转义)。

您也可以将XRegExp(?x)标志一起使用,但仍然受到常规JS字符串引用的限制。

答案 1 :(得分:0)

myPatter = new RegEx(
     '([0-9]{1,2})'   +
     '.... next line' +
     '... anotherline'
);