Javascript:只验证alpha和空格

Javascript: Validate for only alpha and space

本文关键字:空格 alpha 验证 Javascript      更新时间:2023-09-26

我有这个函数,仅当用户在文本框中输入某些内容时,我使用它来验证字母。我刚意识到它不接受空格。我该如何解决这个问题?只是将charCode值添加到等式中?

function isLetter2(evt) {
       evt = (evt) ? evt : event;
       var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
          ((evt.which) ? evt.which : 0));
       if (charCode > 31 && (charCode < 65 || charCode > 90) &&
          (charCode < 97 || charCode > 122)) {
          return false;
       }
       return true;
     }

空格是字符码32(十六进制20),所以只需在第一个if语句之前添加这一行。

if (charCode == 32) return true;

后面跟着原来的if语句。(它们之间不需要额外的else语句,因为一旦检测到空格,函数将立即停止并返回true。)

update:你原来的if语句可以通过De Morgan定律简化为<= 31或(包括65和90之间)或(包括97和122之间)。因此,将第一个> 31更改为> 32也可以很好地工作,因为它的否定将是<= 32并导致返回true,从而允许键入空格。但是我不确定为什么你想要允许所有其他小于32的字符被输入…这里面有很多奇怪的东西。也许你应该把你的代码改成这样:

if (charCode == 32 ||
   (charCode >= 65 && charCode <= 90) ||
   (charCode >= 97 && charCode <= 122))
     return true;
else return false;

实际上,所有这些比较的结果本身等于true或false,因此您可以完全消除if/else语句,只需输入:

return charCode == 32 || (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122);