"foo\r\nbar".replace(/(foo).+/m, "bar")
您好。我无法理解为什么这段代码不会取代条形码上的foo
答案 0 :(得分:25)
我无法理解为什么这段代码不会取代条形码上的foo
因为点.
明确地不匹配换行符。
这样可行:
"foo\r\nbar".replace(/foo[\s\S]+/m, "bar")
因为换行符号计为空格(\s
)。
请注意,foo
周围的括号是多余的,分组在这里没有任何好处。
答案 1 :(得分:19)
JavaScript不支持dot-all修饰符。一个常见的替代品是:
"foo\r\nbar".replace(/(foo)[\s\S]+/, "bar")
/m
使^
和$
行为正确,但对.
没有影响。