2016-05-13 74 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大家...