2016-12-09 3 views
0

Versuchen, mein Formular zu validieren und eine Variable für ungültige Zeichen einzurichten, aber ich habe Probleme, sie zu erkennen, weil sie nur ein paar Symbole sind? -JS Formvalidierung, ungültige Zeichen?

function validation(){ 
     var Name = 
     document.getElementById("name").value; 
     var Email = document.getElementByID("email").value; 
     var invalidSymbol = /[\~\`\!\#\$\%\^\&\*\(\)\-\+\{\}\:\\\;\"\'\<\>\?\,\]/; 

     if Name == ""{ 
      alert("Please enter your name"); 
      document.getElementById("Name").focus(); 
      return false; 
     }else if (Email == "" | | Email.indexOf("@")<1 || Email.lastIndexOf("@")+2 || Email.lastIndexOf(".")+2>=Email.indexOf("@").length || Email.match(invalidSymbol)){ 
      alert ("Please enter a valid e-mail address"); 
      document.getElementById("email").focus(); 
      return false; 
     }else{ 
      return true; 
     } 
} 

Antwort

1
var desired = stringToReplace.replace(/[^\w\s]/gi, '') 

Wie in den Kommentaren erwähnt ist es einfacher, diese als weiße Liste zu tun - ersetzen Sie die Zeichen, die nicht in Ihrer Liste sicherer Absender sind.

Das Caret (^) Zeichen ist die Negation des Satzes [...], gi sagen global und Groß- und Kleinschreibung (letzteres ein wenig überflüssig ist, aber ich wollte es ganz zu schweigen) und die Liste sicherer Absender in dieser Beispiel ist Ziffern, Wort Zeichen, Unterstreichungen (\ w) und Leerzeichen (\ s).

Wie hier angegeben: javascript regexp remove all special characters von annakata