2017-02-24 96 views
0

我想在我的正则表达式函数中允许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; 
    } 
}); 

});

回答

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="" />

+0

谢谢,对不起,不工作太 – TeeJay

+0

我刚刚在铬上使用它的工作就像一个魅力,但在Firefox上没有它仍然没有工作 – TeeJay

+0

肯定,但你能告诉我为什么它不会在Firefox上工作? – TeeJay

1

这是两个Firefox和Chrome浏览器的解决方案:

 $(document).ready(function() { 
     $('#myform').bind('keypress', function(event) { 
     var regex = new RegExp("^[a-zA-Z0-9\\-\\_\\/\\s-\\b\\t]+$"); 
     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(key); 
    event.preventDefault(); 
    return false; 
} 

}); });