【问题标题】:split and join with jQuery each to add space after comma使用 jQuery 拆分并加入每个以在逗号后添加空格
【发布时间】:2012-06-21 13:29:58
【问题描述】:

尝试获取此内容:

<div class="content">one,two,three</div>
<div class="content">four,five,six</div>
<div class="content">seven,eight,nine</div>

和 .split 和 .join 分别使用 jQuery。

$('.content').each(function() {
    var mydata = $(this).text().split(',').join(", ");
    $(this).text(mydata);
});

小提琴:http://jsfiddle.net/ZXgx2

【问题讨论】:

  • 好的,我认为这确实有效。我的代码有错误。但是有更好的方法吗?

标签: jquery split each


【解决方案1】:

当然你可以使用splitjoin

$(".content").text(function(i, val) {
    return val.split(",").join(", ");
});

但我建议改用正则表达式:

$(".content").text(function(i, val) {
    return val.replace(/,/g, ", ");
});

演示: http://jsfiddle.net/ZXgx2/6/

【讨论】:

  • 在另一篇文章中,我读到拆分连接比正则表达式更快。真的吗?
  • 正则表达式对于字符替换来说似乎有点矫枉过正。
  • @nathanbweb 对于短字符串,拆分和连接可能会更快,但对于长字符串则不然。数组需要更多内存。
【解决方案2】:

你的解决方案很好,你的小提琴错了:split(', ')

【讨论】:

    【解决方案3】:

    没有理由拆分、加入或致电.each。只需通过快速正则表达式修改所有 .content 元素的文本:

    ​$(".content").text(function(i,v){
        return v.replace(/,/g, ", ");
    });​​
    

    小提琴:http://jsfiddle.net/jonathansampson/uAHBU/

    【讨论】:

    • @nathanbweb 我做到了,但我仍然不认为拆分和加入是明智的。充其量是不必要的预优化。没有理由创建一个数组只是为了立即将其解散。
    猜你喜欢
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2016-01-28
    • 2021-10-20
    • 1970-01-01
    相关资源
    最近更新 更多