正则表达式从div的内部html替换字符串

时间:2012-04-15 12:16:22

标签: javascript jquery html regex

我有一个包含一些html和文本的div(动态添加html)结构就像

    <div id="contentContainer">
&nbsp; <span>ProductA</span> ; <span>ProductB</span>; prod
</div> 

我想从提交按钮上的div contentContainer的内部html中删除最后一个不完整的文本(prod)

为此我使用正则表达式 returnText.replace(/ \ w + $ /,''); ,它工作正常 因为我无法将文本修剪为';'的最后一个索引

但问题不在于用户在不完整的文本中添加一些特殊的字符作为pr \ od 正则表达式失败

所以有任何解决方案来修剪最后一个附加文本div的内部html 或者我可以将文本修剪到最后一个html标记并放置;之后

请建议任何解决方案

2 个答案:

答案 0 :(得分:2)

如果你使用的是jquery,你可以拉出所有span元素并用它们替换innerHTML。

$("#contentContainer").html( $("#contentContainer span") );

那应该清理休息的东西。也许不是最好的,但我认为它比内容更好。

答案 1 :(得分:1)

解决方案查看DIV中的最后一个DOM节点,如果它是文本节点,则将文本更改为分号

var lastNode = $('#contentContainer').contents().last()[0]

if (lastNode.nodeType == 3) {
    lastNode.textContent=';'
}

演示:http://jsfiddle.net/EhcLh/