2017-03-14 9 views
0

JavaScriptの@, #, $, %, ^, &, *のような特殊文字で検証し、そのメッセージをユーザーに表示します。ユーザーがこれらの特殊文字の組み合わせを入力した場合は、メッセージを表示してフォームを保存しないようにする必要があります。javascriptで特殊文字を確認する

私はこれが動作していない1、

以下
 var label_name = $('#label_name_popup').val(); 
     var regExp = /^[a-zA-Z]*$/ 
     if (!regExp.test(label_name)) { 
      alert("Special character not allowed") 
      return false; 
     } 
     else { 
      return true; 

     } 

を試してみました。どのように私はjavascriptでそれを検証する方法を助けることができます。

+2

"動作しない" の定義? –

+0

どうしてうまくいかないのですか?それはあなたの問題がここに投稿したコードスニペットから来ているようには見えません。 – Frxstrem

+0

@JeremyThille常に他の部分に行き、保存されます – user2681579

答えて

0

keyupイベントを使用して、新しく入力したすべての文字でinputの値をテストすることをお勧めします。テスト機能に合格しなかった場合、アラートが表示されます。

これはOPのコードが機能しない理由を説明していません。 - OPは彼のコードをどんな関数でも落としたり、event listenerにバインドしたりしなかった。だから、どうやってそれをやるのだろう?

フォームを保存しないようにしてください。 - boolean変数は、入力が有効な場合はtruthyの値を保持し、そうでない場合はfalsyの値を保持します。

次に、isInputValid変数がfalseの間にフォームを送信できない間に、単純な条件を実装してフォームを送信します。

var regExp = new RegExp(/^[a-zA-Z]*$/), 
 
    isInputValid = false; 
 

 
$('#label_name_popup').on('keyup', function() { 
 
    var label_name = $('#label_name_popup').val(); 
 
    if (regExp.test(label_name) && label_name) { 
 
    console.log("The form is valid."); 
 
    isInputValid = true; 
 
    } else { 
 
    console.log("The form is invalid."); 
 
    isInputValid = false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id='label_name_popup'>

+0

OPのコードが機能しない理由は説明しません。これは同じRegexテストです。また、文字は許可されていないと警告しますが、それにもかかわらず許可します。 –

+0

はい、これははるかに良い方法です:) –