我想编写一个Javascript函数来更改字符串中的 Lasvegas 文本: 例如:
“你好Lasvegas中的每一个人,来和我一起”
如何更改文字“Lasvegas”,但不能更改HTML标记中的 Lasvegas 内容?
答案 0 :(得分:1)
可能是那样的
str.replace(/Lasvegas[^<]/,'123')
答案 1 :(得分:0)
编辑:忘记JavaScript支持否定前瞻:
"Hello every one in Lasvegas, come <a href='xxx'>Lasvegas</a> with me"
.replace(/(Lasvegas(?!<))/g, "World");
返回:
大家好,欢迎来到世界各地,&lt; a href ='xxx'&gt; Lasvegas&lt; / a&gt;和我一起
<小时/> 离开,所以每个人都可以看到我的第一个答案是多么无意义; - )
如果“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
的内容:
大家好,欢迎来到世界各地,&lt; a href ='xxx'&gt; Lasvegas&lt; / a&gt;和我一起