当字符串传递给 RegExp 构造函数时,内联注释起作用:
RegExp("foo"/*bar*/).test("foo")
但不带表情。JavaScript 中是否有任何等效或替代方法来模拟RegExp 对象的x 模式?
当字符串传递给 RegExp 构造函数时,内联注释起作用:
RegExp("foo"/*bar*/).test("foo")
但不带表情。JavaScript 中是否有任何等效或替代方法来模拟RegExp 对象的x 模式?
Javascript 既不支持x
修饰符,也不支持内联注释(?#comment)
。看这里。
我想,你能做的最好的事情就是使用RegExp
构造函数并将每一行写在单独的字符串中并将它们连接起来(字符串之间有注释):
RegExp(
"foo" + // match a foo
"bar" + // followed by a bar
"$" // at the end of the string
).test("somefoobar");
除了使用长度为零的子表达式之外,这是不可能的。“评论”的例子:
/[a-z](?!<-- Any letter)/
(?!..)
是一个否定的前瞻。如果前一个后面没有括号内的字符串,则匹配。由于 and 之间的东西(?!
是)
一个真正的正则(子)表达式,除非用反斜杠转义,否则您不能使用任意字符
另一种方法是使用积极的前瞻:
/[a-z](?=|<-- Any letter)/
这种前瞻将始终匹配,因为显然a-z
后面还有一个空字符串。