Ich bin nicht sehr erfahren im regulären Ausdruck, deshalb frage ich Sie :) Meine Frage ist, dass ich dieses Muster verwende, wenn ich E-Mails validiere.

/^(([^<>()[\]\\.,;:\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,}))$/

Was kann man diesem Muster hinzufügen, um arabische Zeichen nicht zuzulassen?

0
Marwan 12 Nov. 2012 im 12:36

3 Antworten

Beste Antwort

Reguläre Ausdrücke sollten nicht zum Überprüfen von E-Mails verwendet werden.

Die korrekte Methode zum Überprüfen einer E-Mail-Adresse ist die Verwendung der Klasse MailAddress wie folgt:

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

In Bezug auf die Frage selbst sehen Sie nach , dass es sich um eine gültige E-Mail-Adresse handelt. Sie können auf arabische Zeichen prüfen .

6
Community 23 Mai 2017 im 11:56

Zeicheneigenschaften verwenden:

/\p{sc=Arabic}/

Stimmt mit allen arabischen Zeichen überein.

Kehren Sie dann die Zeichen um, mit denen der Ausdruck übereinstimmt

/[^\p{sc=Arabic}]/
0
Andreas Neumann 20 Nov. 2012 im 09:58

Ich wette, Sie könnten es mit einem Klammerausdruck (aka Character Set aka Character Class) und tun Unicode-Escapezeichen (verfügbar unter Javascript und C #):

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

... wobei die Hashtags (####) das erste arabische Zeichen (dh das Zeichen mit dem niedrigsten Unicode-Wert) und die Prozentzeichen (%%%%) das letzte arabische Zeichen (dh das Zeichen mit dem höchster Unicode-Wert).

Wikipedia sagt mir, dass es mehrere Bereiche arabischer Zeichen gibt, sodass Sie das Snippet wiederholen müssen über.

0
cimnine 12 Nov. 2012 im 08:54