2012-01-17 240 views
0

在我目前的正則表達式,我否定位數:正則表達式否定

$(function(){ 
    $("#somewhat").bind("keyup", 
    function(event) { 
    var regex = /^[\D]*$/; 
    alert(regex.test($("#somewhat").val())); 
    }); 
}); 

我在我的腦海是添加上,我應該否定一些特殊字符,@#$%^ &! *()_ + = <>。?/〜`:;「,並保留短劃線,撇號(- ')到有效的列表中,我仍然對這個正則表達式事情感到頭暈。 ,我在正則表達式上添加了+

var regex = /^[\D+]*$/; 

當我測試它時,警告框會返回TRUE,這不是我所期望的。

+0

什麼是你相匹配的HTML元素的內容? – 2012-01-17 01:54:17

+0

我想驗證名稱,我似乎無法使用'/ [a-zA-Z] * $ /',因爲我正在接受歐洲國家(如德國)的其他信件。所以我會採取另一種方式來反駁。 – 2012-01-17 01:56:50

+1

請參閱http://stackoverflow.com/questions/888838/regular-expression-for-validating-names-and-surnames – Daveo 2012-01-17 02:02:55

回答

0

[\D+]的意思是「任何字符是+,或不是一個數字」;所以它實際上相當於普通的舊\D[\D],因爲+本身不是數字。

爲了得到「既不是+也不是數字」的任何字符的含義,您必須編寫[^\d+]

\D[\D]相當於[^\d],但其負面的煩躁不超出這一點。)