正则表达式用开头和结尾替换多次出现的内容

时间:2017-12-14 14:19:10

标签: javascript regex

我有一个如下所示的字符串

Mickey <script> 333</script>  1  <script>eee</script> 2 <script>edddde</script> 3

我希望它如下所示(替换所有的开始脚本和结束脚本标记的空白)

Mickey 1 2 3

当我在下面尝试时(它会替换第一个和最后一个脚本标记之间的整个内容

data = data.replace(/<script>.*<\/script>/,"")

我得到 Mickey 3

4 个答案:

答案 0 :(得分:3)

使用非贪婪的算子:

data = data.replace(/<script>.*?<\/script>/g, "");

答案 1 :(得分:2)

我猜它几乎就是你要找的东西

data.replace(/<script>(.*?)<\/script> +/g, "")

用这个可以得到你想要的东西:

data.replace(/<script>(.*?)<\/script>/g, "").replace(/\s+/g, " ")

答案 2 :(得分:1)

您必须使用正确的分组方式全局捕获该组:

data.replace(/<script>(.*?)<\/script>/g,"")

答案 3 :(得分:0)

使用|运算符匹配第一个或第二个表达式。 不要忘记全局运算符g来匹配字符串中的所有匹配项。

data.replace(/<script>|<\/script>/g, "")

//生产&#34;米奇333 1 eee 2 edddde 3&#34;