"foo\r\nbar".replace(/(foo).+/m, "bar")
Hello. I can not understand why this code does not replace foo on bar
"foo\r\nbar".replace(/(foo).+/m, "bar")
Hello. 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)+/m, "bar")
because newline characters count as whitespace \s.
Note that the parentheses around foo are superfluous, grouping has no benefits here.