有谁能告诉我为什么这个脚本会导致无限循环?
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/>");
}
答案 0 :(得分:5)
做{没有p}而(以p为条件)显然会继续运行。你的意思是:
var words = ' ', spaces = /\s{9}/, p;
do {
p = spaces.test(words);
words = prompt("Test ", " ");
}
while (!p);
答案 1 :(得分:2)
每次循环时都不会改变P. P将始终是您进入循环之前的状态
答案 2 :(得分:0)
是的,我认为正则表达式没有按照你的想法做到。 \ s {9}将连续搜索9个空格。正则表达式似乎是一个非常难以使用的工具,因此我使用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/>");
}
也许?