我有一个非常复杂的 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 字符串引用的限制。
关于JavaScript 正则表达式格式化为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363353/