文字コードとASCII値を使用して、一部の特殊文字や数字などの入力を制限するJavaScriptを知っています。
とにかく、英語を除いて他の言語(つまりアルファベット)を入力する人をブロックできるものはありますか? より具体的には、テキストボックスに中国語またはその他の英語以外のアルファベット名を入力する人をブロックし、英語のアルファベット名のみを厳密に入力させるにはどうすればよいですか?
ありがとう
文字コードとASCII値を使用して、一部の特殊文字や数字などの入力を制限するJavaScriptを知っています。
とにかく、英語を除いて他の言語(つまりアルファベット)を入力する人をブロックできるものはありますか? より具体的には、テキストボックスに中国語またはその他の英語以外のアルファベット名を入力する人をブロックし、英語のアルファベット名のみを厳密に入力させるにはどうすればよいですか?
ありがとう
この関数を使用して、入力から特殊文字を削除します
function removeSpecials(evt) {
var input = document.getElementById("myinput");
var patt = /[^\u0000-\u007F ]+/;
setTimeout(function() {
var value = input.value;
input.value = value.replace(patt,"");
},100);
}
ポイントは、すべての特殊文字を検出するパターンを作成することです
var patt = /[^\u0000-\u007F ]+/;;
入力値を置き換えます
value.replace(patt,"");
ここにフィドルがあります
すべての非ASCII入力をブロックする最も簡単な方法は、おそらく
/^[\x00-\xff]+$/.test(input);
この式は、 が純粋な ASCII 文字で構成されてtrue
いる場合に返されます。input
false
非ASCII文字が見つかった場合に返されます。
必要に応じて、受け入れられる ASCII 文字の範囲を調整できます。\x00-\x55
アスキー文字コードを含む0-255
などで入力をチェックすることで、ユーザーを特定の文字セットに簡単に制限できますinputString.match(/^[A-Za-z]+$/)
。英語とほぼ同じアルファベットを共有しているため、簡単にブロックできない言語はたくさんありますが、中国語などの言語をキャッチします。