2

英語以外の言語からの入力フィールドを制限するタスクがあります。フィールドには英語のみを入力する必要があります。

私のテキストボックスは

<input type="text"/>

機能は

 $(document).on("keypress", "input[type='text'] function (event) {
        return suppressNonEng(event);
    });

function suppressNonEng(EventKey) {
    var key = EventKey.which || EventKey.keyCode;
    if (key > 128) { sefAlert("Only English is allowed"); return false; }
    else { return true; }
}

中国語、ギリシャ語、その他の場合は機能しましたが、スペイン語、フランス語の場合、英語とフランス語で同じ ASCII 文字が使用されているため、機能しません。この問題の解決策はありますか?助けてください

4

2 に答える 2

0

アクセントや面白い文字なしでのみ使用Regexおよび許可できます。a-zA-z

于 2013-09-04T13:23:31.530 に答える
0

フィドル

とてもシンプルです。入力されたすべての文字を、入力された文字が英語のアルファベットからのものかどうかをチェックする正規表現と照合する必要があります。

$("#mytextbox").on("keypress", function(event) {
    var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g;
    var key = String.fromCharCode(event.which);
    if (englishAlphabetAndWhiteSpace.test(key)) {
        return true;
    }
    alert ("this is not in English");//put any message here!!!
});

コメントの後:

キーボードのすべてのキーにはキーコードがあります。そのため、E のようなキーを押すと、コンピューターはそれをキーコード (この場合は 69) として解釈します。コンピューターにフランス語の E と英語の E の違いを理解させるのは難しい.

ユーザーに警告したくない場合は、警告を に置き換えてreturn false;ください。

ブラウザの言語を検出する必要がある場合:

これを使って:

var userLang = navigator.language || navigator.userLanguage; 
alert ("The language you are using is: " + userLang);
if(userLang!=whatever-you-want){
    alert("only whatever-you-want allowed!!!")
}

言語を確認してください

于 2013-09-04T13:35:00.620 に答える