如果一个字母返回 true 的 Javascript 函数?

新手上路,请多包涵

因此,我希望为我的类编写一个名为 isAlpha 的函数,它接受一个字符(最好是长度为 1 的字符串),如果是字母则返回 true,否则返回 false。

问题是我完全不知道该去哪里。这是老师在课堂上给出的例子:

 var isAlpha = function(ch){

     //if ch is greater than or equal to "a" AND
    // ch is less than or equal to "z" then it is alphabetic

}

var ltr ="a", digit =7;
alert(isAlpha(ltr));
alert(isAlpha(digit))

不过,我不确定该怎么做,我尝试了一些不同的方法,例如:

 var isAlpha = function(ch){
    if (ch >= "A" && ch <= "z"){
        return true
    }

}
alert(isAlpha(ch))

谁能指出我如何启动此功能的正确方向?

原文由 johntc121 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 337
2 个回答

您可以只使用不区分大小写的 正则表达式

 var isAlpha = function(ch){
  return /^[A-Z]$/i.test(ch);
}

如果您应该按照关于大于和小于比较的注释中的说明进行操作,并且您想要检查输入是否为长度为 1 的字符串,那么:

 var isAlpha = function(ch){
  return typeof ch === "string" && ch.length === 1
         && (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z");
}

console.log(isAlpha("A"));      // true
console.log(isAlpha("a"));      // true
console.log(isAlpha("["));      // false
console.log(isAlpha("1"));      // false
console.log(isAlpha("ABC"));    // false because it is more than one character

您会注意到我没有使用 if 语句。 That’s because the expression ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z" evaluates to be either true or false , so you can simply return that value directly.

您尝试过的 if (ch >= "A" && ch <= "z") 不起作用,因为大写“A”和小写“z”之间的字符范围不仅包括字母,还包括“Z”和“之间的其他一些字符”一个”。

原文由 nnnnnn 发布,翻译遵循 CC BY-SA 3.0 许可协议

首先确保它是一个字符串,然后使用正则表达式。

 var isAlpha = function(ch){
  return typeof ch === "string" && ch.length === 1 && /[A-Za-z]/.test(ch);
}

原文由 ASDFGerte 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题