2016-12-09 4 views
0

私のフォームを検証し、無効な文字の変数を設定しようとしましたが、記号の束だけなので認識できないのですか? -JSフォームの検証、無効な文字はありますか?

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

答えて

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

としては、それがホワイトリスト としてこれを行うには簡単だコメントで言及された - あなたのセーフリストに含まれていない文字を置換します。

キャレット(^)文字[...]セットの否定である、GIが言う グローバルと大文字と小文字を区別しない(後者は少し冗長ですが、私 はそれを言及したかった)、これでセーフリスト例は数字、単語 文字、アンダースコア(\ w)、空白(\ s)です。

ここに述べたように: javascript regexp remove all special characters annakata

関連する問題