我有一个非常复杂的 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
另外我想问一下是否有另一种格式化正则表达式的方法,这样更容易阅读。
我有一个非常复杂的 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
另外我想问一下是否有另一种格式化正则表达式的方法,这样更容易阅读。
JavaScript 不支持该/x
标志(允许使用空格和注释),但您可以使用字符串将表达式拆分为多行。例如:
var re = new RegExp(
"foo" +
"bar" +
"baz",
"ig");
当然,这具有正则表达式的常规字符串引用(双重转义)的缺点。
您也可以将XRegExp与它的(?x)
标志一起使用,但您仍然受到常规 JS 字符串引用的限制。
myPatter = new RegExp(
'([0-9]{1,2})' +
'.... a new line' +
'... anotherline'
);