我想我问这个问题是错误的,不幸的是,所有提交的内容并不完全是我需要的只是替换(到第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';
答案 0 :(得分:2)
基于显着改变的问题
请参阅Regular Expressions和String.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
上
答案 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);
答案 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;
});