2012-01-17 244 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],但其负面的烦躁不超出这一点。)