Javascript:仅验证 alpha 和空格

标签 javascript html function validation space

我有这个函数,仅当用户在文本框中输入内容时才用它来验证字母。 我刚刚意识到它不接受空格。我该如何解决这个问题?只需将 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。)

更新:您的原始 if 语句可以通过德摩根定律简化为 <= 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);

关于Javascript:仅验证 alpha 和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624521/

相关文章:

html - Firefox 不将列表项呈现为链接

html - 覆盖 CSS 样式

php - 每个值都显示在新行 HTML 表中

C - 创建动态矩阵函数的问题

javascript - jQuery.when() 似乎没有在等待

javascript - 将项目添加到 json 对象

python - 哪个图是 "the right one"?

java - 我必须从多次调用的函数中返回一个值,但我无法做到这一点

javascript - 如何使用 "this"作为函数的参数?

javascript - 无法在 AJAX 调用中设置 null 的属性 'innerHTML'