替换html字符串中的文本
问题描述:
我想为以下条件编写正则表达式替换html字符串中的文本
源字符串可能会随意包含html代码。应该保留哪些内容,标签外的所有内容都应该替换为静态文本。
function replaceCode(mystring){
var replaceWith = "Hello!!!" ;
//do something with mystring here..
}
var string1 = "<span>Title</span> A small note" ;
var string2 = "Another big note" ;
alert(replaceCode(string1)) ;
alert(replaceCode(string2)) ;
合力字符串必须
//string1 must become
<span>Title</span> Hello!!!
//string2 must become
Hello!!!
答
你可以做以下操作:
var yourString = "<span>Title</span> any text to replace";
var yourReplacement = "Hello!";
//Split by html tags
var tokens = yourString.split(/<\w+>\w+<\/\w+>/);
for (var i = 0; i < tokens.lenght; i++) {
yourString = yourString.replace(tokens[i], yourReplacement);
}
然而,这可能不是最好的解决办法,并不会为嵌套标签工作,但适合你例子。
[jQuery:将元素添加到另一个元素之后]的可能重复(https://stackoverflow.com/questions/2244605/jquery-add-element-after-another-element) – Jonathan
如果跨度之外的文本发生更改打个招呼,那你为什么需要string2? –
正则表达式根据您使用的语言不同而有不同的风格和语法。你可能想澄清一下上下文。我确实看到你用JavaScript和HTML标记了这个问题,但最好清楚一点。香草JavaScript还是你使用jQuery? – fjoe