javascript正则表达式禁止所有特殊字符

新手上路,请多包涵

这是一个开始的小提琴 - http://jsfiddle.net/zuVpx/1/

脚本代码:

 <script>
    function validate(e) {
        var regex = new RegExp("[a-zA-Z0-9]");
        var key = e.keyCode || e.which;
        key = String.fromCharCode(key);

        if(!regex.test(key)) {
            e.returnValue = false;
            if(e.preventDefault) {
                e.preventDefault();
            }
        }
    }
</script>

HTML 代码:

 <input type="text" onkeypress="validate(event)" />

我只想要字符和数字。退格键、删除键、大写锁定键和箭头键等键应该可以使用。

提前致谢。

原文由 Ashwin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 648
2 个回答

[ _旧答案_, 更新] KeyboardEvent.charCodeKeyboardEvent.keyCode 已弃用。我们应该使用 KeyboardEvent.key

 document.querySelector(`#validate`).onkeypress = e => /[a-z0-9]/i.test(e.key);
 <input type="text" id="validate">

id 添加到输入(例如“验证”)并使用:

 document.querySelector('#validate').onkeypress = validate;

function validate(e) {
        e = e || event;
        return /[a-z0-9]/i.test(
                   String.fromCharCode(e.charCode || e.keyCode)
               ) || !e.charCode && e.keyCode  < 48;
}

原文由 KooiInc 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试

/[-!$%^&*()_+|~=`\\#{}\[\]:";'<>?,.\/]/.test(your_variable)

如果匹配则返回 true。

原文由 WillyMilimo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏