2016-12-30 7 views
0

私は数字と特殊文字(Altキーボードシーケンス、EX:[email protected]#$%^&*()_|}{~!"?>:<?/][\=- '`、...)を持つタイプのみのラテンチャーターを許可するためのjsコードを持っていますが、 latin numberと不可視の文字Keyboard.whatのために働くのですか?jQueryはラテン文字のみを許可します

DEMO:https://jsfiddle.net/oosjtmgg/

 $(".latin_letters").on("keypress", function(event) { 
 
      var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g; 
 
      var key = String.fromCharCode(event.which); 
 
      if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetAndWhiteSpace.test(key)) { 
 
       return true; 
 
      } 
 
      return false; 
 
     }); 
 
     $('.latin_letters').on("paste", function(e) { 
 
      e.preventDefault(); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="email" class="latin_letters">

+0

「目に見えない文字のキーボード」とは何ですか? – guest271314

+0

@ guest271314 EXこれは:!@#$%^&*()_ |} {〜!、... –

+0

"!@#$%^&*()_ |} {〜!," ? "..."とは、入力文字が有効か無効かを表していますか? – guest271314

答えて

0

これを試してください:

のみ追加: - VARのenglishAlphabetAndWhiteSpaceを=「/^[[email protected]/# & + \ワット\ s] * $/";

$(".latin_letters").on("keypress", function(event) { 
 
     var englishAlphabetAndWhiteSpace = /^[[email protected]/#&+\w\s]*$/; 
 
      var key = String.fromCharCode(event.which); 
 
      if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetAndWhiteSpace.test(key)) { 
 
       return true; 
 
      } 
 
      return false; 
 
     }); 
 
     $('.latin_letters').on("paste", function(e) { 
 
      e.preventDefault(); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="email" class="latin_letters" type="text">

+0

これが動作していることを試してください... –

0

$(".latin_letters").on("keydown", function(event) { 
 
      var allowed = /[[email protected]#\$%\^&\*\(\)_|}{~">:<\?/\]\[\\=\- ]/g; 
 
      var key = String.fromCharCode(event.which); 
 
      if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || allowed.test(key)) { 
 
       return true; 
 
      } 
 
      return false; 
 
     }); 
 
$('.latin_letters').on("paste", function(e) { 
 
    e.preventDefault(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="email" class="latin_letters">

これはあなたのために動作します。以前は数字と信号をテストしていませんでした。

関連する問題