2016-05-13 75 views
1
function LettersOnly(e) { 
    var charTyped = String.fromCharCode(e.which); 
    var letterRegex = /[a-zA-Z._^%$#[email protected],-\s\b`&]+/; 
    if (!(charTyped.match(letterRegex)) || (e.keyCode >= 96 && e.keyCode <= 105)) { 
     return false; 
    } 
    else { 
     return true; 
    } 
} 

这是我的代码仅限制数字,但这里的特殊字符也不会来了......这是关键下来正则表达式上的keydown仅限制数字

+0

试试这个/ ^([^ 0-9] *)$/Not numbers – vijaykumar

回答

2

仅限制使用的数字:

letterRegex = /[^0-9]/; 

见例如:

$("#text").keypress(
 
      
 
    function (e) { 
 
    var charTyped = String.fromCharCode(e.which); 
 
    var letterRegex = /[^0-9]/; 
 
    
 
    if (charTyped.match(letterRegex)) { 
 
     return true; 
 
    } 
 
    else { 
 
     return false; 
 
    } 
 
    
 

 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input id="text">

+0

@Tanmay补充一个例子。 –

1

使用下面的正则表达式模式只匹配“非数字”字符:

... 
var letterRegex = /\D+/; 
+0

它会在keydown工作 – Tanmay

+0

@ThomasAyoub,是的,谢谢 – RomanPerekhrest

+0

@Tanmay,至少,你应该试试 – RomanPerekhrest

1

您需要相匹配的正则表达式数后返回false,如果其他匹配数返回true。

function LettersOnly(e) { 
    var charTyped = String.fromCharCode(e.which); 
    var numberRegex = /\d+/; 
    if (charTyped.match(numberRegex) || (e.keyCode >= 96 && e.keyCode <= 105)) { 
     return false; 
    } 
    else { 
     return true; 
    } 
} 
+0

这里还有特殊字符受到限制 – Tanmay

+0

字符在数字!@#$%^&*()这些 – Tanmay

0

在的keydown我想我们不能限制数量限制!@#$%^ & *(),所以我做的按键,它就像一个charm.Thanks大家...