-5

谁能告诉我为什么这个脚本会导致无限循环?

    var words = ' ';
var spaces = /\s{9}/;
var p;
p = spaces.test(words);

do {
    words = prompt("Test ", " ");
}
while (p != true);

var array = words.split(" ");
for(i = 0; i < array.length; i++) {
    document.write(array[i] + "<br/>");
}
4

3 回答 3

5

do {nothing with p} while(以 p 为条件)显然会一直运行下去。你是不是这个意思:

var words = ' ', spaces = /\s{9}/, p;
do {
   p = spaces.test(words);
   words = prompt("Test ", " ");
}
while (!p);
于 2013-06-20T18:33:54.537 回答
2

每次循环时,您都不会更改 P 。P 将永远是你进入循环之前的样子

于 2013-06-20T18:35:12.590 回答
0

是的,我认为正则表达式不会做你认为它做的事情。\s{9} 将连续搜索 9 个空格。regex 似乎是一个很难使用的工具,所以我使用 split 制作了我认为你想要的东西,看起来你已经很熟悉了。

var words = ' ';
var p;

do {
    words = prompt("Test", "");
    p = words.split(" ");
}
while (p.length != 9);

var array = words.split(" ");
for(i = 0; i < array.length; i++) {
    document.write(array[i] + "<br/>");
}

也许?

于 2013-06-20T18:35:47.473 回答