1

私はこのコードを使用して正常に動作していますが、このコードの問題は、最適化されていないことです。たとえば、さらにいくつかの文字を追加したい場合は、ifs...が発生します。

if (keychar == "#" || keychar == "!" || keychar == "$" ..........)

このコードを最適化する方法はありますか?少ないifを意味します(防止するために特殊文字を追加する必要がある場合)

 <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>
4

4 に答える 4

4
switch(keychar) {
    case "#":
    case "!":
    case "$":
       ...
    default:
       ...
}

また

if( keychar.match(/[#!$]/))
于 2012-04-20T03:08:46.443 に答える
1

文字列で制限する文字のリストを定義し、を使用して入力されたキーを検索しますindexOf

keychar = String.fromCharCode(keynum);
return "'a#!$".indexOf(keychar) == -1;
于 2012-04-20T03:08:58.077 に答える
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;
    }

}

于 2012-04-20T03:32:54.467 に答える
0

jqueryを使用してテキストボックス内の特殊文字を制限する方法

 $("#txtUploadFrequency").keypress(function (e) {
    if (String.fromCharCode(e.keyCode).match(/[^0-9A-Za-z]/g)) return false;
});`enter code here`
于 2013-10-25T07:05:15.620 に答える