2011-01-14 7 views
4

wenn ich MVC verwenden 3 mit Rasiermesser ist es gut funktionieren, aber wenn ich einen regulären Ausdruck mit @section Kopf schreiben { }, dass siewie Regex zu verwenden, in MVC 3 mit rasiermesser

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); 
     } 

es hat @ so nicht funktionieren das ist mir Fehler geben, dass

Parser Fehler Beschreibung: ein Fehler bei der Analyse einer Ressource aufgetreten erforderlich, um diese Anforderung zu bedienen. Bitte überprüfen Sie die folgenden spezifischen Parser Fehler Details und ändern Sie Ihre Quelldatei entsprechend. Parser-Fehlermeldung: "\" ist zu Beginn von ein Codeblock ungültig. . Nur Identifikatoren, Schlüsselwörter, Kommentare, "(" und "{" sind gültig

Antwort

16

Eine sauberere Option ist das @ zu entkommen, indem sie einen anderen @ vor ihm platziert (@@)

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

'weniger Tastenanschläge'! = Sauberer. Eigentlich ist jgAffins Lösung besser lesbar und sicherer (denke copy/paste) – sweaver2112

1

<text></text> hinzufügen um die Funktion, sagt er Razor nicht den Inhalt zu analysieren:

<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

sind Text Tag von der Seite entfernen, wenn sie auf der Client-Seite als html –

+0

ja rendern. Es wird nur von Razor verwendet und aus dem HTML-Code entfernt, der an den Webbrowser zurückgegeben wird. – jgauffin

-3

Sorry, Leute, die Sie den Fehler nicht lesen, es geht um die Schrägstriche beschweren, nicht die @ und oder @ {} nicht helfen.

+0

Sie haben den Kontext des Fehlers nicht korrekt. –

Verwandte Themen