为什么我的while循环被卡住了?

时间:2015-07-23 12:29:39

标签: javascript while-loop

我想在textarea中替换两个(或更多)换行符,但它总是被困在一个无限循环中

这里是:

var dateinput = document.getElementById("date");
var intIndexOfMatch = dateinput.value.indexOf('\n\n');


while (intIndexOfMatch != -1){
    dateinput .value = dateinput .value.replace('\n\n', '\n');

}

1 个答案:

答案 0 :(得分:3)

因为您没有更改intIndexOfMatch

var dateinput = document.getElementById("date");
var intIndexOfMatch = dateinput.value.indexOf('\n\n');


while (intIndexOfMatch != -1){
    dateinput .value = dateinput .value.replace('\n\n', '\n');
    intIndexOfMatch = dateinput.value.indexOf('\n\n');
}

更好的解决方案

var dateinput = document.getElementById("date").value.replace(/\n{2,}/g, '\n');
顺便提一下,

替换你的整个代码