我需要使用Javascript替换文本。这与我在S.O.上看到的其他一些有点不同。因为需要添加的文本是递增的整数。
例如:用“John1 Mary2 Ellen3 Josh4 Adam5”替换字符串:“John Mary Ellen Josh Adam”
答案 0 :(得分:6)
使用回调替换器:
var str = "John Mary Ellen Josh Adam", i=0;
str = str.replace(/ /g,function(m) {i++; return i+" ";});
编辑:注意到在“亚当”之后不会添加数字。只需添加以下内容即可修复:
i++; str += i;
在代码的末尾。
EDIT2:或多功能一体:
str = str.replace(/ |$/g,function(m) {i++; return i+m[0];});
答案 1 :(得分:2)
你可以这样做:
var array = string.split(" "), i, j;
for(i=0,j=array.length,string="";i<j;string+=array[i]+(++i)+" ");
答案 2 :(得分:1)
var input = "John Mary Ellen Josh Adam";
var i = 0;
var output = input.replace(/\w+/g, function(m){ return m + ++i });
输出是:
"John1 Mary2 Ellen3 Josh4 Adam5"
答案 3 :(得分:0)
我为你准备了这个jsfiddle。
这是代码:
var originalStr = "John Mary Ellen Josh Adam";
var splitStr = originalStr.split(' ');
var newStr = "";
for (var i = 0; i < splitStr.length; i++)
newStr += splitStr[i] + (i+1) + ' ';
alert(newStr);
答案 4 :(得分:0)
我很快就把它搞砸了。不确定它的效率如何,但它确实有效。
var x = 1, str = "John Mary Ellen Josh Adam",
newStr = str.replace(/\b([^\s]*)\b/g, function(i){
return i && (i + (x++));
});