"foo\r\nbar".replace(/(foo).+/m, "bar")
Hello. I can not understand why this code does not replace foo on bar
I can not understand why this code does not replace foo on bar
Because the dot .
explicitly does not match newline characters.
This would work:
"foo\r\nbar".replace(/foo[\s\S]+/m, "bar")
because newline characters count as whitespace ( \\s
).
Note that the parentheses around foo
are superfluous, grouping has no benefits here.
JavaScript does not support a dot-all modifier. A common replacement is:
"foo\r\nbar".replace(/(foo)[\s\S]+/, "bar")
/m
makes ^
and $
behave correctly, but has not effect on .
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.