2

文字コードとASCII値を使用して、一部の特殊文字や数字などの入力を制限するJavaScriptを知っています。

とにかく、英語を除いて他の言語(つまりアルファベット)を入力する人をブロックできるものはありますか? より具体的には、テキストボックスに中国語またはその他の英語以外のアルファベット名を入力する人をブロックし、英語のアルファベット名のみを厳密に入力させるにはどうすればよいですか?

ありがとう

4

3 に答える 3

2

この関数を使用して、入力から特殊文字を削除します

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,"");

ここにフィドルがあります

于 2015-01-26T01:02:59.023 に答える
1

すべての非ASCII入力をブロックする最も簡単な方法は、おそらく

/^[\x00-\xff]+$/.test(input);

この式は、 が純粋な ASCII 文字で構成されてtrueいる場合に返されます。input

false非ASCII文字が見つかった場合に返されます。


必要に応じて、受け入れられる ASCII 文字の範囲を調整できます。\x00-\x55アスキー文字コードを含む0-255

于 2015-01-26T01:01:33.517 に答える
0

などで入力をチェックすることで、ユーザーを特定の文字セットに簡単に制限できますinputString.match(/^[A-Za-z]+$/)。英語とほぼ同じアルファベットを共有しているため、簡単にブロックできない言語はたくさんありますが、中国語などの言語をキャッチします。

于 2015-01-26T00:54:25.460 に答える