正则表达式无法允许选项卡

时间:2017-02-24 10:21:12

标签: javascript regex

我正在尝试在我的正则表达式功能中允许使用Tab键并且它不起作用可以有人请帮助吗?找到我的功能:

   $(document).ready(function () {
$('#myform').bind('keypress', function (event) {
    var regex = new RegExp("^[a-zA-Z0-9\-\_\/\ \b\t]+$");
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
        event.preventDefault();
        return false;
    }
});

});

2 个答案:

答案 0 :(得分:1)

您需要使用另一个反斜杠(\)来转义所有反斜杠(\)。因此,以下代码应该可以正常工作:

$(document).ready(function() {
  $('#myform').bind('keypress', function(event) {
    var regex = new RegExp("^[\\w\\-\\/ \\b\\t]+$", 'i');
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
      console.log(key);
      event.preventDefault();
      return false;
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input id="myform" value="" />

答案 1 :(得分:1)

这是适用于firefox和chrome的解决方案:        $(document).ready(function(){       $(&#39; #myform&#39;)。bind(&#39; keypress&#39;,function(event){       var regex = new RegExp(&#34; ^ [a-zA-Z0-9 \\ - \\ _ \\ / \\ s - \\ b \\ t] + $&#34;);       var charCode =!event.charCode? event.which:event.charCode;       if([0,8] .indexOf(charCode)!== -1)return;     var key = String.fromCharCode(charCode);     if(!regex.test(key)){     的console.log(键);     event.preventDefault();     返回false; } }); });