0

私は正規表現の経験があまりないので、なぜ私はあなたに尋ねているのですか:)私の質問は、私が電子メールを検証するときにこのパターンを使用することです。

/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zAZ\-0-9]+\.)+[a-zA-Z]{2,}))$/

アラビア文字を禁止するためにこのパターンに追加するのは何ですか?

4

3 に答える 3

6

電子メールの検証に正規表現を使用しないでください。

メールアドレスを検証する正しい方法は、次のMailAddressようなクラスを使用することです。

try 
{
    string address = new MailAddress(address).Address;
} 
catch(FormatException) 
{
    //address is invalid
}

質問自体については、有効なメールアドレスであることを確認した、アラビア文字を確認できます。

于 2012-11-12T08:42:27.190 に答える
0

角かっこ式(別名文字セット、別名文字クラス)とUnicodeエスケープ(javascriptC#で利用可能)でそれを行うことができると思います:

[^\u####-\u%%%%]

...ここで、ハッシュタグ(####)は最初のアラビア文字(つまり、Unicode値が最も低い文字)を表し、パーセント記号(%%%%)は最後のアラビア文字(つまり、Unicode値が最も高い文字)を表します。

ウィキペディアによると、アラビア文字には複数の範囲があるため、上記のスニペットを繰り返す必要があります。

于 2012-11-12T08:46:02.207 に答える
0

文字プロパティを使用する:

/\p{sc=Arabic}/

すべてのアラビア文字に一致します。

次に、式が一致する文字を逆にします

/[^\p{sc=Arabic}]/
于 2012-11-20T09:58:24.297 に答える