我正在使用此代码并且工作正常,但此代码的问题是,它没有进行优化,例如,如果我想添加更多的字符,那么我最终会有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>
答案 0 :(得分:4)
switch(keychar) {
case "#":
case "!":
case "$":
...
default:
...
}
OR
if( keychar.match(/[#!$]/))
答案 1 :(得分:1)
定义要在字符串中限制的字符列表,并搜索使用indexOf
输入的密钥。
keychar = String.fromCharCode(keynum);
return "'a#!$".indexOf(keychar) == -1;
答案 2 :(得分:0)
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;
}
}
答案 3 :(得分:0)
如何使用jquery
限制文本框中的特殊字符 $("#txtUploadFrequency").keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9A-Za-z]/g)) return false;
});`enter code here`