1

我怎样才能让这段代码只返回一个错误警报,因为当我检查字符串“name”中的内容是否都应该是小写字母时,它包含一个数字?

var name = "Bob1";
var i = 0; 
var name = name.toLowerCase()

for(i=0; i<name.length; i++){
  if((name.charCodeAt(i)>96) && (name.charCodeAt(i)<123)) {
    alert("true");
  } else {alert("false");}
}
4

4 回答 4

5

我会为此使用正则表达式:

if(name.match(/\d/)) {
    // this contains at least one number
}
else {
    // this doesn't contain any numbers
}

由于人们会注意到赞成的答案,因此我将为您的案例提供更好的解决方案。Ray Toal 提到了这一点(在这种情况下向他表示感谢/赞成):

由于您只想为您的name.

if(name.match(/^[a-z]+$/)) {
    // this contains only undercase alpha's
}
else {
    // this contains at least one character that's not allowed
}
于 2013-05-01T05:50:33.053 回答
1

如果您想提醒所有字符都在范围内az您可以使用直接表示的正则表达式

alert(/^[a-z]+$/.test(name1.toLowerCase()))

false如果字符串包含至少一个非字母,您还可以反转条件并说您想要该值:

alert(!(/[^a-z]/.test(name1.toLowerCase())))
于 2013-05-01T05:54:02.520 回答
0

添加一个break语句,以便新代码在 if 语句中看起来像这样

if((name.charCodeAt(i)>96) && (name.charCodeAt(i)<123))
 {alert("true");
   break;
 }else

...基本上它只是退出 for 循环(相同的命令也适用于 while 循环)

于 2013-05-01T05:50:39.940 回答
0

休息一下;在 else 中,以便它在第一次警告 false 后退出循环

于 2013-05-01T05:51:54.577 回答