我正在使用这段代码并且工作正常,但这段代码的问题是,它没有优化,例如,如果我想再添加几个字符,那么我最终会有 ifs....
if (keychar == "#" || keychar == "!" || keychar == "$" ..........)
有没有办法优化这段代码? 意味着更少的 ifs(如果我需要添加更多特殊字符来防止)
<script language="javascript" type="text/javascript">
function check(e) {
var keynum
var keychar
var numcheck
// For Internet Explorer
if (window.event) {
keynum = e.keyCode
}
// For Netscape/Firefox/Opera
else if (e.which) {
keynum = e.which
}
keychar = String.fromCharCode(keynum)
//List of special characters you want to restrict
if (keychar == "'" || keychar == "a") {
return false;
}
else {
return true;
}
}
</script>
switch(keychar) {
case "#":
case "!":
case "$":
...
default:
...
}
或
if( keychar.match(/[#!$]/))
定义字符串中要限制的字符列表,然后搜索使用 indexOf
输入的键。
keychar = String.fromCharCode(keynum);
return "'a#!$".indexOf(keychar) == -1;
function check(e) {
var event = e || window.event;
var keychar = String.fromCharCode(event.keyCode);
switch(keychar) {
case 'a':
case 'b':
case 'c':
/*
* case 'd':
* case 'e':
* ...
*/
return false;
default:
return true;
}
}
如何使用
jquery限制文本框中的特殊字符
$("#txtUploadFrequency").keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9A-Za-z]/g)) return false;
});`enter code here`