我有以下div,它具有引用内部文档ID的“number”属性。
<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);
});
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
我认为最好的解决方案是将String.replace()与正则表达式一起使用。 请查看http://www.w3schools.com/jsref/jsref_replace.asp以获取快速参考和示例。
答案 1 :(得分:0)
您可以像这样使用常规表达式:
$('.container').each(function(){
var number= $(this).attr('number').replace(/(\+\d+)/g, "$1\.ID,").slice(0,-1);
$('#container').append(number);
});
它匹配字符串a +
后跟一系列数字,并自行替换匹配后跟.ID,
切片只删除最后一个逗号。
答案 2 :(得分: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"));
});