2011-01-14 5 views
4

quand j'utilise MVC 3 avec le rasoir, il est très bien de travail, mais quand j'écris une expression régulière en utilisant la tête de @section { } qu'ils fonctionnent pascomment utiliser regex dans MVC 3 avec rasoir

function isValidEmailAddress(emailAddress) { 
      var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
      return pattern.test(emailAddress); 
     } 

il a @ si qui me donne erreur

Parser erreur description: une erreur est survenue lors de l'analyse d'une ressource requise pour cette demande. S'il vous plaît examiner les détails suivants erreur d'analyse spécifique et modifier votre fichier source de manière appropriée. Message d'erreur de l'analyseur: "\" n'est pas valide au début de un bloc de code. . Seuls des descripteurs, mots-clés, commentaires, "(" et "{" sont valides

Répondre

16

Une option plus propre est pour échapper à la @ en plaçant une autre @ devant elle (@@)

function isValidEmailAddress(emailAddress) { 
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
    return pattern.test(emailAddress); 
} 
+0

'moins de frappes'! = Neater. En fait, la solution jgauffins est plus lisible et plus sûre (pensez copier/coller) – sweaver2112

1

Ajouter <text></text> autour de la fonction, il dit Razor de ne pas analyser le contenu:

<text> 
function isValidEmailAddress(emailAddress) { 
      var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
      return pattern.test(emailAddress); 
     } 
</text> 
+0

sont les balises de texte à supprimer de la page lorsqu'elles sont affichées côté client sous la forme html –

+0

oui. Il est uniquement utilisé par Razor et est supprimé du code HTML qui est renvoyé au navigateur Web. – jgauffin

-3

Désolé, les gens, vous ne lisez pas l'erreur, il se plaint de la barre oblique inverse, pas le @, et ou @ {} n'aidez pas

+0

Vous n'avez pas le contexte de l'erreur correcte. –

Questions connexes