Regexp取代&但不是<和>

时间:2014-01-23 12:57:16

标签: javascript regex replace

我想使用JS(和正则表达式?)将所有& 替换为& amp; ,除了那些&

相关的字符
>

<

有人可以帮忙吗? :)提前致谢!

2 个答案:

答案 0 :(得分:3)

最简单的解决方案是检查&

后面的字母和分号
/&(?![A-Z]+;)/gi

完整的符合标准的版本,也会检查数字代码:

/&(?!([A-Za-z]+|#\d+|#x[\da-fA-F]+);)/g

答案 1 :(得分:2)

您可以使用正则表达式:

&(?!amp;|gt;|lt;)

JS示例:

"test & > < and & with &foo;".replace(/&(?!amp;|gt;|lt;)/gi, "&");

结果:

"test & > < and & with &foo;"