Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用JS将重复数按1相加?_Javascript_Replace_Repeat - Fatal编程技术网

Javascript 如何用JS将重复数按1相加?

Javascript 如何用JS将重复数按1相加?,javascript,replace,repeat,Javascript,Replace,Repeat,我猜我问错了这个问题,不幸的是,所有提交的内容都不完全符合我的要求,我需要的只是(第n个数字…)的替换: var temp='11随机文本11随机文本11随机文本11随机文本11'; to:(但也保持文本+标记不变) var temp='11随机文本22随机文本33随机文本4'; 除了标记似乎不正确之外,您可以使用循环并将迭代器计数到有限的数字: var items = 3; var temp = ''; for (var i = 1; i <= items; i++) { t

我猜我问错了这个问题,不幸的是,所有提交的内容都不完全符合我的要求,我需要的只是(第n个数字…)的替换:

var temp='11
随机文本
11
随机文本
11
随机文本
11
随机文本
11';
to:(但也保持文本+标记不变)

var temp='11
随机文本
22
随机文本
33
随机文本
4';
除了标记似乎不正确之外,您可以使用循环并将迭代器计数到有限的数字:

var items = 3;
var temp = '';

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

console.log(temp);
var项=3;
var temp=“”;

对于(var i=1;i您可以使用如下内容。底部有一把小提琴

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);
var temp='lorem ipsum\
同侧眼睑\
"同侧眼",;
变量标签=温度拆分(“”);
温度=”;
对于(var i=0;i

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

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;
});
var n=0;

var rx=/([^基于显著变化的问题

看到和

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));
函数修改(字符串){
var n=0;
返回临时替换(/\b1(\s+)1\b/g,函数(全部,空白){
n+=1;
返回n+空格+n;
});
}
变量温度='11
随机文本
11
随机文本
11
随机文本
11
随机文本
11'; 控制台日志(修改(临时));
输出

1 1 <br>random text</br> 2 2 <br>random text</br> 3 3 <br>random text</br> 4 4 
11
随机文本
22
随机文本
33
随机文本
4

上,您从何处获取字符串?您尝试了什么?
不是有效的标记,如果它应该是一个标记的话。此外,您最好自己生成所有HTML,而不是大量生成字符串manipulation@Bojangles谁说它是HTML?它也不是有效的XML fwiw,但OP可能使用不同的格式。@Benjamin G我看到了JavaScript和一个标记,虽然“啊,这是HTML,但错了”,但现在你的问题已经有了很大的改变,为什么不向我们展示一下你的尝试,告诉我们你面临的问题,以便我们帮助纠正它。
i@BenjaminGruenbaum很好,更新了
循环
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