在字符串开头删除逗号

时间:2012-08-21 14:03:07

标签: jquery

Campaign Monitor有一个脚本可输出您的广告系列存档。 这是输出:

<article class="node history">
  <ul>
    <li><a href="http://xxx.createsend.com/t/ViewEmailArchive/x/1448CC2F5A9BABD9/C67FD2F38AC4859C/" class="ext">Title</a>, 04 July 2012</li>
  </ul>
</article>

因为我想将日期与标题分开(通过给a元素一定的宽度);如何摆脱日期前的逗号和空间 - 使用jQuery?

当我尝试下一段代码时,li元素中的a元素消失了(所以没有更多的链接,一切都只是纯文本)。

更新:好的,所以这适用于逗号。如何删除空间?

$(".node.history ul li").each(function() {
      $(this).html($(this).html().replace(/[,]/, ""));
});​

4 个答案:

答案 0 :(得分:1)

使用$.html()代替$.text()

答案 1 :(得分:1)

如其他答案中所述,您需要修复选择器,并使用$().html()代替$().text()

你的正则表达式也不需要方括号 - 它们定义了一组要匹配的字符(在你的情况下,你想要一个逗号或空格的字符[我认为]逗号后跟< / em>空间)。完整的解决方案:

<ul class="node history"> 
    <li>
        <a href=http://xxx.createsend.com/t/ViewEmailArchive/x/1448CC2F5A9BABD9/C67FD2F38AC4859C/ class="ext">Title</a>, 04 July 2012
    </li>
</ul>
$("ul.node.history li").each(function() {
    var result = $(this).html().replace(/, /, "");
    $(this).html(result);
    alert(result);
});

http://jsfiddle.net/RichardTowers/H5Hcj/

答案 2 :(得分:1)

这可能会删除角色

之前的逗号
  $("ul.node.history li").each(function() {
 $(this).text($(this).text().replace(/\,/g, ""));
 });​

答案 3 :(得分:0)

如果我理解您的问题,请尝试将您的html字符串简单地更改为:

<article class="node history">
  <ul>
    <li><a href="http://xxx.createsend.com/t/ViewEmailArchive/x/1448CC2F5A9BABD9/C67FD2F38AC4859C/" class="ext">Title</a>&nbsp 04 July 2012</li>
  </ul>
</article>

删除逗号并添加'&amp; nbsp'(空格)