1

我有一个非常复杂的 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

另外我想问一下是否有另一种格式化正则表达式的方法,这样更容易阅读。

4

2 回答 2

3

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

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

当然,这具有正则表达式的常规字符串引用(双重转义)的缺点。

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

于 2013-05-03T16:19:20.977 回答
1
myPatter = new RegExp(
     '([0-9]{1,2})'   +
     '.... a new line' +
     '... anotherline'
);
于 2013-05-03T16:18:29.160 回答