Javascript For循环在检测到非字母字符时创建无限循环
在for循环迭代期间,如果在if语句中检测到非字母字符,则i不会递增 如果字符不按字母顺序排列,则非数字函数返回true,否则返回false。当我在for循环中测试代码时,我让控制台打印出I的值。每当代码到达一个非字母字符时,我不会得到递增,因此会创建一个无限for循环Javascript For循环在检测到非字母字符时创建无限循环,javascript,infinite-loop,Javascript,Infinite Loop,在for循环迭代期间,如果在if语句中检测到非字母字符,则i不会递增 如果字符不按字母顺序排列,则非数字函数返回true,否则返回false。当我在for循环中测试代码时,我让控制台打印出I的值。每当代码到达一个非字母字符时,我不会得到递增,因此会创建一个无限for循环 function isUpper(str){ for(i = 0; i < str.length; i++){ if(str.charAt(i) == str.charAt(i).toUpperCase()){
function isUpper(str){
for(i = 0; i < str.length; i++){
if(str.charAt(i) == str.charAt(i).toUpperCase()){
if(!nonnumeric(str.charAt(i))){
return true;
};
};
};
return false;
};
函数isUpper(str){
对于(i=0;i
如果字符串中有大写字符,我希望它返回true。如果字符串中没有大写字符,我希望它返回false。我认为是两个因素导致了这个问题:
function isUpper(str) {
let count = 0;
for (let i = 0; i < str.length; i++) {
if (/[a-zA-Z]/.test(str.charAt(i)) && str.charAt(i) == str.charAt(i).toUpperCase()) {
count += 1;
}
if (count > 0) {
return true;
}
}
return false;
}
函数isUpper(str){
让计数=0;
for(设i=0;i0){
返回true;
}
}
返回false;
}
让我知道这是否有帮助 我认为是两件事导致了这个问题:
function isUpper(str) {
let count = 0;
for (let i = 0; i < str.length; i++) {
if (/[a-zA-Z]/.test(str.charAt(i)) && str.charAt(i) == str.charAt(i).toUpperCase()) {
count += 1;
}
if (count > 0) {
return true;
}
}
return false;
}
函数isUpper(str){
让计数=0;
for(设i=0;i0){
返回true;
}
}
返回false;
}
让我知道这是否有帮助 如果要检查整个字符串是否为大写,可以做一些更简单的事情
函数isUpper(str){
返回/^[A-Z\s\W]+$/.test(str);
}
log(isUpper('ALL大写'));
log(isUpper('ALL大写字母!带~@#STUFF');
log(isUpper('这有一个小写字符');
log(isUpper('这有一个数字')代码>如果要检查整个字符串是否为大写,可以做一些更简单的事情
函数isUpper(str){
返回/^[A-Z\s\W]+$/.test(str);
}
log(isUpper('ALL大写'));
log(isUpper('ALL大写字母!带~@#STUFF');
log(isUpper('这有一个小写字符');
log(isUpper('这有一个数字')代码>我认为你误解了结果。你能说明你是如何得出无限循环正在发生的结论的吗?said for循环中的任何内容都不会阻止i
在不停止循环的情况下递增。循环将运行N次,其中N是str的长度。要生成此inf,您需要以>=计算每个迭代str.length时的迭代速度向字符串添加。为什么非数值()
如果字符不是字母而不是数字,则返回true?我发现您在这里没有使用var
或let
声明I
;是否可能是非数字
或其他内容正在覆盖您的全局i
变量?也许摆出你的非数字
函数能帮我们解决这个问题。真不敢相信我做了