0

我有以下 div,它有一个引用内部文档 ID 的“数字”属性。

    <div class="container" number="+905423871416  +905423871416"></div>
    <div class="container" number="+905423871416></div>

使用 JavaScript/jQuery,我可以将文本“.ID”添加到属性的末尾,尤其是第二项。结果将如下所示:“+905423871416.ID”。这很棒,而且效果很好。但是,相同的方法对第一项的影响略有不同,产生以下结果:“+905423871416 +905423871416.ID”。

我基本上想要做的是拆分这些单独的 ID 号并在它们的末尾添加“.ID”,用逗号分隔。我理想的结果如下:

<div class="container" number="+905423871416.ID,  +905423871416.ID"></div>

我正在使用以下内容:

 $('.container').each(function(){
    var number= $(this).attr('number') + '.ID';
  $('#container').append(number);
});

任何帮助,将不胜感激。谢谢你。

4

3 回答 3

1

我认为最好的解决方案是将 String.replace() 与正则表达式一起使用。查看http://www.w3schools.com/jsref/jsref_replace.asp以获取快速参考和示例。

于 2013-06-13T15:31:36.113 回答
0

您可以使用像这样的正则表达式:

$('.container').each(function(){
    var number= $(this).attr('number').replace(/(\+\d+)/g, "$1\.ID,").slice(0,-1);
    $('#container').append(number);
});

它匹配字符串 a+后跟一系列数字,并用其自身替换匹配,然后.ID, 切片只是删除最后一个逗号。

于 2013-06-13T15:34:21.413 回答
0

这将获取每个数字属性,将 .ID 添加到每个数字的末尾,并替换数字属性:

$('.container').each(function(){
    var numberattr= $(this).attr('number');
    numberattr=numberattr.replace(/(\+[0-9]+)/g, "$1.ID");
    $(this).attr('number', numberattr);
});

或者更简洁地说:

$('.container').each(function(){
   $(this).attr('number', $(this).attr('number').replace(/(\+[0-9]+)/g, "$1.ID"));
});
于 2013-06-13T15:37:27.623 回答