Javascript正则表达式字符串替换多行字符串

Rus*_*gin 4 javascript regex replace multiline

使用JavaScript正则表达式替换,尝试替换<head></head>标记之间的任何内容,以便:

<head>
   Multiline foo
</head>
<body>
  Multi line bar
</body>
Run Code Online (Sandbox Code Playgroud)

被替换为:

<body>
  Multi line bar
</body>
Run Code Online (Sandbox Code Playgroud)

并尝试使用非常基本的:<head(.*)\/head>/m这不起作用.当从字符串中删除换行符时,它工作正常.无论什么类型的换行,什么是魔术?

Ala*_*ore 8

问题是点元字符与换行符不匹配.在大多数正则表达式中,您可以通过设置"DOTALL"或"单行"模式强制它匹配所有内容,但JavaScript不支持它.相反,你需要更换的东西,点匹配的一切.最常见的习语是[\s\S]("任何空白字符或任何不是空格的字符").