如何用JS加一个重复的数字?

时间:2013-07-07 15:08:18

标签: javascript replace repeat

我想我问这个问题是错误的,不幸的是,所有提交的内容并不完全是我需要的只是替换(到第n个数字......):

var temp = '1 1 <br>random text</br> 1 1 <br>random text</br> 1 1 <br>random text</br> 1 1';

to :(但也保留了之前的文字+标签)

var temp = '1 1 <br>random text</br> 2 2 <br>random text</br> 3 3 <br>random text</br> 4 4';

4 个答案:

答案 0 :(得分:2)

基于显着改变的问题

请参阅Regular ExpressionsString.prototype.replace

的Javascript

function modify(string) {
    var n = 0;

    return temp.replace(/\b1(\s+)1\b/g, function (all, whitespace) {
        n += 1;

        return n + whitespace + n;
    });
}

var temp = '1 1 <br>random text</br> 1 1 <br>random text</br> 1 1 <br>random text</br> 1 1';

console.log(modify(temp));

输出

1 1 <br>random text</br> 2 2 <br>random text</br> 3 3 <br>random text</br> 4 4 

jsfiddle

答案 1 :(得分:1)

除了您的标记似乎不正确之外,您可以使用循环并将迭代器计数到有限数量:

var items = 3;
var temp = '';

for (var i = 1; i <= items; i++) {
    temp += "<nr=" + i + ">lorem ipsum<nr=" + i + ">";
}

console.log(temp);

答案 2 :(得分:1)

您可以使用以下内容。底部有一个小提琴。

var temp = '<nr="1">lorem ipsum<nr="1">\
            <nr="1">lorem ipsum<nr="1">\
            <nr="1">lorem ipsum<nr="1">';

var tags = temp.split('            ');
temp = "";
for(var i = 0; i < tags.length; i++){
    var tmp = tags[i].replace('<nr="1">', '<nr="'+(i+1)+'">');
    tmp = tmp.replace('<nr="1">', '<nr="'+(i+1)+'">');
    temp += tmp;
}
console.log(temp);

http://jsfiddle.net/ZcYhZ/

答案 3 :(得分:1)

如果输入可能是任何东西而不是你自己构建的东西,那么正则表达式是你最好的选择。

var n = 0;
var rx = /(<nr=")1(">[^<]*<nr=")1(">)/g;
var result = temp.replace(rx, function(whole, one, two, three){
    n += 1;
    return one + n + two + n + three;
});