【问题标题】:How to allow space with alpha numeric characters using keycode validation?如何使用键码验证允许带有字母数字字符的空格?
【发布时间】:2018-02-20 04:11:41
【问题描述】:
这是下面的代码,只允许字符和数字,但我想在字符和数字旁边留出空格。请帮忙。
function IsAlphaNumericTour(e) {
var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
document.getElementById("error_tour").style.display = ret ? "none" : "inline";
return ret;
}
【问题讨论】:
标签:
javascript
jquery
jquery-ui
javascript-objects
dom-events
【解决方案1】:
只需要在这个函数中加上(空格)的keyCode
function IsAlphaNumericTour(e) {
var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || keyCode == 32 ||(specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
document.getElementById("error_tour").style.display = ret ? "none" : "inline";
return ret;
}
【解决方案2】:
空格的关键代码是 32,因此您可以将条件更改为如下内容:
var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode) || keyCode == 32);
【解决方案3】:
如果您愿意,也可以通过正则表达式测试来做到这一点:
function IsAlphaNumericTour(e) {
var key = e.which;
var regex = /[a-zA-Z0-9 ]/;
var ret = key.test(regex);
// This method returns true if it finds a match, otherwise it returns false.
$("#error_tour").css("display", (ret ? "none" : "inline"));
return ret;
}