[英]Javascript: How can I replace the contents of a string but not in an HTML tag?
我想编写一个Javascript函数来更改字符串中的文本Lasvegas :示例:
“大家好,拉斯韦加斯,和我一起去<a href='xxx'>拉斯韦加斯</a> ”
如何更改文本“ Lasvegas”,而不更改HTML标记中的内容Lasvegas ?
可能是这样的
str.replace(/Lasvegas[^<]/,'123')
编辑:忘记JavaScript支持否定的先行:
"Hello every one in Lasvegas, come <a href='xxx'>Lasvegas</a> with me"
.replace(/(Lasvegas(?!<))/g, "World");
返回值:
世界上的每个人你好,<a href='xxx'>拉斯维加斯</a>
如果“ Lasvegas”不在字符串末尾,则Alexey的答案将起作用。 我不确定是否有更好的方法,但是您可以使用replacer函数来断言文本是否在标记内:
var str = "Hello every one in Lasvegas, come <a href='xxx'>Lasvegas</a> with me"; var out = str.replace( /(>?Lasvegas<?)/g, function ($0) { if ($0.slice(0,1) == ">") return $0; else return "World"; } );
out
内容:
世界上的每个人你好,<a href='xxx'>拉斯维加斯</a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.