【问题标题】:Javascript: Validate for only alpha and spaceJavascript:仅验证 alpha 和空格
【发布时间】:2013-03-15 12:11:05
【问题描述】:

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

【问题讨论】:

  • 您为什么不尝试一下并找出答案?似乎是一个简单的测试。

标签: javascript html function validation space


【解决方案1】:

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

if (charCode == 32) return true;

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2016-03-10
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多