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

标签 javascript jquery

我正在使用这段代码并且工作正常,但这段代码的问题是,它没有优化,举个例子,如果我想添加更多的字符,那么我最终会得到 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(/[#!$]/))

关于javascript - 如何使此代码更有用(防止文本区域中出现特殊字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239711/

相关文章:

javascript - Discord.JS启动和停止机器人

javascript - 使用insertBefore IE8显示重叠

javascript - jquery 倒计时不工作

php - jQuery 序列化数据未插入数据库

jquery - 嵌入式时间线中的多个推特提要

javascript - 我可以用 onclick=return false 触发链接上的点击事件吗

jQuery Unslider 在本地工作,但不在服务器上

javascript - Rally 2.1 SDK - 按迭代过滤用户故事

javascript - 为 Javascript 禁用用户提供的替代导航菜单

javascript - "TypeError: d is undefined"在带有鼠标悬停事件的条形图上转换时