2017-08-28 130 views
3

我想为以下条件编写正则表达式替换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!!! 
+0

[jQuery:将元素添加到另一个元素之后]的可能重复(https://stackoverflow.com/questions/2244605/jquery-add-element-after-another-element) – Jonathan

+0

如果跨度之外的文本发生更改打个招呼,那你为什么需要string2? –

+0

正则表达式根据您使用的语言不同而有不同的风格和语法。你可能想澄清一下上下文。我确实看到你用JavaScript和HTML标记了这个问题,但最好清楚一点。香草JavaScript还是你使用jQuery? – fjoe

回答

0

你可以做以下操作:

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); 
} 

然而,这可能不是最好的解决办法,并不会为嵌套标签工作,但适合你例子。