2010-10-25 8 views
1

Note: question a été modifié pour rester en phase avec ce que j'ai essayé des commentateursExpression régulière comportement différent dans C# code derrière et ASPX

Je suis en train de faire correspondre un e-mail, mais une fois mis le même expression dans le code derrière, vs l'ASPX, je semble obtenir des correspondances différentes pour l'adresse e-mail. Le validateur aspx regex semble fonctionner correctement, mais je dois également valider mon service web. Je suis sûr que je manque quelque chose de simple ici, est-ce que quelqu'un a des idées?

Regex regExEmail = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 
if (!regExEmail.IsMatch(contact.emailAddress)) 
{ 
    //do something 
} 
+1

"^ (\ w + ([- +.] \ W +) * @ \ w + ([-.] \ W +) * $" suffirait-il? (Désolé pour la non-réponse) Modifier: Nevermind: –

+0

Je crois que nous utilisons la regex standard de validation d'email de Microsoft. –

+2

Avez-vous un exemple de quelque chose qui ne correspond pas correctement dans un cas, mais pas dans l'autre? –

Répondre

1

Dans votre constructeur Regex, vous pouvez utiliser la version à deux paramètres pour définir la valeur RegexOptions. Cette énumération inclut une valeur pour ECMAScript, qui entraînera la correspondance Regex à suivre le comportement compatible ECMAScript.

+0

Cela aiderait si l'objectif est d'obtenir une expression rationnelle JavaScript et une expression rationnelle ASP.NET fonctionner de la même manière, mais je ne suis pas sûr de savoir comment cela aide ici. –

+0

@Steven Sudit - J'ai pris la question de l'OP pour signifier que sa page ASP.NET rendue (d'où HTML/JavaScript) utilisait la regex spécifiée, et il voulait que son service web utilise la même regex pour la validation. Définir l'enum ECMAScript dans le constructeur regex utilisé par le service Web devrait accomplir cela, correct? – JeremyDWill

+0

Oui JeremyDWill, c'est exactement ce que j'essayais de dire. Je m'excuse si je n'ai pas correctement formulé ma question. –

1

Utilisation asp:CustomValidator au lieu de RegularExpressionValidator qui va appeler toute méthode de validation à partir d'une bibliothèque, le même que celui utilisé par le WS.