2016-04-04 7 views
0

私のC#プロジェクトには2つの正規表現がありますが、他のものは機能しません。c#正規表現は常にエラーを返します

Regex RX = new Regex("^[a-zA-Z0-9]{1,20}@[a-zA-Z0-9]{1,20}.[a-zA-Z]{2,3}$"); 
if (!RX.IsMatch(emailInput.Text)) 
{ 
    errorMessage = "Email is invalid!"; 
} 

電子メールが実際に電子メールであるかどうかをチェックします。私は同じ名前に同じ電子メールを送信します。私はユーザー名の長さと特殊文字をチェックします。

new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$"); 
if (!RX.IsMatch(usernameInput.Text)) 
{ 
    errorMessage = "Username is invalid!"; 
} 

何時か私は自分のプロジェクトを実行するたびに、ユーザー名が無効であることを知りません。それは私がusernameとして何を入力しても、常にerrorMessageを返します。

+3

一部のサンプルですいいね。 – npinti

+0

[username regex works](http://ideone.com/x6LMbG)。 –

+0

'新しい正規表現'を 'RX'に割り当てましたか? –

答えて

1

あなたが.NETがあなたのためにそれをやらせる、は全くRegexインスタンスを作成しないこと、と思われるようになります。

if (!Regex.IsMatch(usernameInput.Text, 
        @"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$")) { 
    errorMessage = "Username is invalid!"; 
} 
2

あなたの正規表現は機能していますが、あなたは新しい正規表現にRXを割り当てるのを忘れたと思います。

new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$"); 

RX = new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$"); 
+0

ああ、愚かな間違いありがとう! –