首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中进行字母数字检查的最佳方法

在JavaScript中进行字母数字检查的最佳方法
EN

Stack Overflow用户
提问于 2010-12-14 06:23:27
回答 12查看 332.4K关注 0票数 146

JSP中的INPUT字段执行字母数字检查的最佳方法是什么?我已经附上了我当前的代码

function validateCode() {
    var TCode = document.getElementById("TCode").value;

    for (var i = 0; i < TCode.length; i++) {
        var char1 = TCode.charAt(i);
        var cc = char1.charCodeAt(0);

        if ((cc > 47 && cc < 58) || (cc > 64 && cc < 91) || (cc > 96 && cc < 123)) {
        } else {
            alert("Input is not alphanumeric");
            return false;
        }
    }

    return true;
}
EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-12-14 06:26:11

您可以使用this regex /^[a-z0-9]+$/i

票数 128
EN

Stack Overflow用户

发布于 2014-08-18 02:26:19

请求者最初倾向于使用str.charCodeAt(i)似乎比使用正则表达式更快。在my test on jsPerf中,RegExp选项在Chrome36中的执行速度要慢66% (在Firefox31中也会稍微慢一点)。

以下是原始验证代码的经过清理的版本,它接收一个字符串并返回truefalse

function isAlphaNumeric(str) {
  var code, i, len;

  for (i = 0, len = str.length; i < len; i++) {
    code = str.charCodeAt(i);
    if (!(code > 47 && code < 58) && // numeric (0-9)
        !(code > 64 && code < 91) && // upper alpha (A-Z)
        !(code > 96 && code < 123)) { // lower alpha (a-z)
      return false;
    }
  }
  return true;
};

当然,可能还有其他的考虑因素,比如可读性。单行正则表达式看起来绝对更漂亮。但是,如果您严格关注速度,则可能需要考虑此替代方案。

票数 116
EN

Stack Overflow用户

发布于 2011-12-28 16:44:16

使用正则表达式检查它。

Javascript regexen没有POSIX字符类,因此您必须手动编写字符范围:

if (!input_string.match(/^[0-9a-z]+$/))
  show_error_or_something()

这里,^表示字符串的开头,$表示字符串的结尾,[0-9a-z]+表示从09或从az的一个或多个字符。

有关Javascript regexen的更多信息,请访问:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4434076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档