【问题标题】:regex to replace a string from the inner html of a div正则表达式从 div 的内部 html 替换字符串
【发布时间】:2012-04-15 12:16:22
【问题描述】:

我有一个 div,其中包含一些 html 和文本(html 是动态添加的)结构会像

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

我想在提交按钮单击时从 div contentContainer 的内部 html 中删除最后一个不完整的文本(产品)

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

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

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

请提出任何解决方案

【问题讨论】:

    标签: javascript jquery html regex


    【解决方案1】:

    如果您使用的是 jquery,您可以提取所有 span 元素并用它们替换 innerHTML。

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

    那应该清理其余的东西。也许不是最好的,但我认为它比内容上的正则表达式更好。

    【讨论】:

      【解决方案2】:

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

      var lastNode = $('#contentContainer').contents().last()[0]
      
      if (lastNode.nodeType == 3) {
          lastNode.textContent=';'
      }
      

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

      【讨论】:

        猜你喜欢
        • 2018-07-13
        • 2017-11-27
        • 2017-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多