2012-01-17 9 views
0

、私は否定しています数字:正規表現の否定私の現在の正規表現で

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

私が私の心を持っていることは、私は否定すべきで一部の特殊文字、@の#​​$%^ &を追加することです! *()_ + = <>?//`:;"、ダッシュ、アポストロフィ(- ')を有効なリストに残しておけば、この正規表現のものにはまだめまいがあります。 、私は+を正規表現に追加しました。

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

私がテストすると、警告ボックスはTRUEを返します。これは私が期待していないものです。

+0

あなたが一致しているHTML要素の内容はどのようなものですhttp://kourge.net/projects/regexp-unicode-block? –

+0

名前を検証しようとしていますが、私はドイツのようなヨーロッパの国では他の文字を受け入れているので、/ [a-zA-Z] * $/'を使うことはできません。だから、私は逆にして、私は否定になる。 –

+1

http://stackoverflow.com/questions/888838/regular-expression-for-validating-names-and-surnames – Daveo

答えて

1

インサイド[]あなたが許可したくないすべての文字を追加してください。

/^((?![\[email protected]#$%^&*()_+=<>.?/~`:;"]).)*$/ 

ただし、指定した文字を無効にすることはできますか?ユーザはこれら以外の文字を入力することができるからです。あなたは、英語以外の文字を許可する場合、私はあなたがUnicodeが

はこれを見る範囲を使用することをお勧め:

0

[\D+]は、「+であるか、または数字ではない任意の文字」を意味します。 +自体は数字ではないので、実際には普通の\Dまたは[\D]に相当します。

+でも数字でもない文字」という意味を得るには、[^\d+]と書かなければなりません。

\Dまたは[\D][^\d]と同等ですが、その負ネスはそれを超えて拡張されません。)