对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;
}
发布于 2010-12-14 06:26:11
您可以使用this regex /^[a-z0-9]+$/i
发布于 2014-08-18 02:26:19
请求者最初倾向于使用str.charCodeAt(i)
似乎比使用正则表达式更快。在my test on jsPerf中,RegExp选项在Chrome36中的执行速度要慢66% (在Firefox31中也会稍微慢一点)。
以下是原始验证代码的经过清理的版本,它接收一个字符串并返回true
或false
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;
};
当然,可能还有其他的考虑因素,比如可读性。单行正则表达式看起来绝对更漂亮。但是,如果您严格关注速度,则可能需要考虑此替代方案。
发布于 2011-12-28 16:44:16
使用正则表达式检查它。
Javascript regexen没有POSIX字符类,因此您必须手动编写字符范围:
if (!input_string.match(/^[0-9a-z]+$/))
show_error_or_something()
这里,^
表示字符串的开头,$
表示字符串的结尾,[0-9a-z]+
表示从0
到9
或从a
到z
的一个或多个字符。
有关Javascript regexen的更多信息,请访问:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
https://stackoverflow.com/questions/4434076
复制相似问题