如何使用jquery阻止或限制输入字段中的特殊字符?

如何使用jquery阻止或限制输入字段中的特殊字符?

如何使用jquery阻止特殊字符输入到输入字段?



梦里花落0921
浏览 1639回答 3
3回答

萧十郎

一个使用正则表达式的简单示例,您可以将其更改为允许/禁止您喜欢的任何内容。$('input').on('keypress', function (event) {     var regex = new RegExp("^[a-zA-Z0-9]+$");     var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);     if (!regex.test(key)) {        event.preventDefault();        return false;     }});

红糖糍粑

我一直在寻找一个限制输入仅限于字母数字字符的答案,但仍然允许使用控制字符(例如,退格键,删除键,制表符)和复制+粘贴。我尝试的答案都没有满足所有这些要求,所以我想出了以下使用该input事件。$('input').on('input', function() {   $(this).val($(this).val().replace(/[^a-z0-9]/gi, ''));});编辑:正如rinogo在评论中指出的那样,上面的代码片段在输入文本的中间键入时强制光标到输入的末尾。我相信下面的代码片段可以解决这个问题。$('input').on('input', function() {   var c = this.selectionStart,       r = /[^a-z0-9]/gi,       v = $(this).val();   if(r.test(v)) {     $(this).val(v.replace(r, ''));     c--;   }   this.setSelectionRange(c, c);});

catspeake

简短回答:阻止'按键'事件:$("input").keypress(function(e){     var charCode = !e.charCode ? e.which : e.charCode;     if(/* Test for special character */ )         e.preventDefault();})答案很长:使用像jquery.alphanum这样的插件选择解决方案时需要考虑以下几点:粘贴文字上述代码可以防止像退格或F5这样的控制字符。é,í,ä等阿拉伯语或中文......跨浏览器兼容性我认为这个领域足够复杂,可以保证使用第三方插件。我尝试了几个可用的插件,但发现每个插件都有一些问题所以我继续写了jquery.alphanum。代码如下所示:$("input").alphanum();或者对于更精细的控制,添加一些设置:$("#username").alphanum({     allow      : "€$£",     disallow   : "xyz",     allowUpper : false});希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery