用JavaScript替换文本

时间:2012-03-21 14:22:40

标签: javascript

我需要使用Javascript替换文本。这与我在S.O.上看到的其他一些有点不同。因为需要添加的文本是递增的整数。

例如:用“John1 Mary2 Ellen3 Josh4 Adam5”替换字符串:“John Mary Ellen Josh Adam”

5 个答案:

答案 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++));
});