如何使此代码更有用(防止文本区域中的特殊字符)

How to make this code more useful (preventing special characters in textarea)

本文关键字:区域 文本 特殊字符 代码 何使此 有用      更新时间:2023-09-26

我正在使用这段代码并且工作正常,但这段代码的问题是,它没有优化,例如,如果我想再添加几个字符,那么我最终会有 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`