【发布时间】:2015-10-12 09:01:37
【问题描述】:
我想替换“span”之外的“word”,并保留“span”内的另一个。到目前为止,当两者都跟随“mark>”并跟随“span”时,以下代码可以工作。但是我想更进一步,在“mark>”之后或者在“span”之后,这两个条件中的任何一个都应该导致替换操作。
var replaceString = "newWord";
var htmlString = "This <span style='color:red' title='mark'>normal word</span> need no change. This word is to be replaced. <span>Another word</span> need no change.";
var reg=new RegExp("(?!mark>)"+replaceString+"(?!<\/span>)","gi");
var bb=htmlString.replace(reg,replaceString);
alert(bb)
// Final result should be "This <span style='color:red' title='mark'>normal word</span> need no change. This newWord is to be replaced. <span>Another word</span> need no change.";
更新:使用标题作为标记。添加起始标签 span
更新:按照以下建议,我正在尝试以其他方式解决问题,请参见此处:js regex: replace words not in a span tag
【问题讨论】:
-
您的 HTML 无效。第二个
</span>没有起始标签。另外,mark应该做什么? -
我加了“mark”表示这个词已经加了“span”,不用再改了。我删除起始标签只是为了描述我想要的。它在实际代码上运行时存在。谢谢。
-
我不明白要替换单词
"word"的信息应该来自哪里。您的第一个跨度包含“普通单词”,但您想替换单词"word"? -
@torazaburo,我的意思是
span中的“单词”无需更改,“单词”可能在句子中。
标签: javascript regex replace