var userInput = prompt("type something with or without double spacing");
var errorSpaces = [];
var maxSpaceCount = [];
var doneOnce = 0;
var done = 0;
var size;
var tempArray = [0, 0];
while (done === 0) {
if (doneOnce === 0) {
for (var i = 0; i<size; i++) {
size = userInput.length - 1;
if (userInput.substr(i, 2) == " ") {
userInput.replace(userInput.substring(i, j), userInput[i]);
errorSpaces.push(0);
}
}
doneOnce = 1;
maxSpaceCount.push(0);
} else if (doneOnce === 1 && tempArray.length != 1) {
for (var i = 0; i<size; i++) {
tempArray = [0];
size = userInput.length - 1;
if (userInput.substr(i, 2) == " ") {
userInput.replace(userInput.substring(i, j), userInput[i]);
tempArray.push(0);
}
doneOnce = 2;
}
maxSpaceCount.push(0);
} else {
done = 1;
}
}
alert("done");
这循环在第二个循环而不是完成。我知道这可能不是最好的方法,但是如果&#39;那么我怎么能做到呢?工作,以便当没有更多的双重空格时,它将进入最后的其他地方?
我试图通过迭代地用单个空格替换双空格来消除任何多个空格,然后重新读取以替换更多的双重(先前三重)空格等。
答案 0 :(得分:3)
方式,如果您的目标是用单个空格替换任何双(或更多空格),那么代码太多了
尝试正则表达式
var userInput = prompt("type something with or without double spacing");
userInput = userInput.replace(/\s{2,}/g, ' ');
alert("done");
虽然不太确定您要对tempArray
做什么,因为它似乎没有意义。
修改强>
似乎有一些迹象表明需要计算 2个或更多空格的出现次数,因此使用下面的内容将为您提供计数。 ||
位的原因是因为如果没有找到它,它将返回null,|| []
将null更改为空数组,因此它的长度将为零。 感谢@RobG
var countOfMultipleSpaces = (userInput.match(/\s{2,}/g) || []).length;
我确定不用说在更换所有内容之前必须这样做
答案 1 :(得分:2)
"type something with or without double spacing".replace(/\s{2,}/g, ' ');
//"type something with or without double spacing"