3

登録ページがあり、次のコードを使用してユーザー名フィールドのスペースバーを無効にしました:

<script type='text/javascript'>
//<![CDATA[ 
    $(window).load(function(){
        $("#username").on("keydown", function (e) {
            return e.which !== 32;
        });
    });
//]]>  

</script>

ただし、システムに問題を引き起こしている他のキャラクターも見つけました。ローマ字以外の文字やその他の記号を無効にするにはどうすればよいですか? このようなもの: á,#~!ČΨΩヲЖ</p>

4

2 に答える 2

1

この問題は、いずれかの正規表現で解決できます。

文字セット AZ、az、および 0-9 (アクセントなし) を含めるだけの場合は、次の正規表現を使用して、文字がこれらのセットに含まれているかどうかを識別できます。

/^[a-zA-Z0-9]/.test(e)

さらに良いことに、無効な文字が入力されたときに、ユーザーのキー入力を妨害する (イライラするかもしれません) のではなく、入力の横に警告を表示することができます。<span id="warning"></span>次の があったとしましょう<input id="username">:

$("#username").on("keydown", function (e) {
    if ( !( /^[a-zA-Z0-9]/.test(e) ) ) {
        $("#warning").text("Only values from a-z, A-Z, and 0-9 are valid");
    }
});
于 2013-05-16T10:24:56.157 に答える
1

charCode 範囲を作成し、必要なものを厳選できます。

$("#username").on("keydown", function (e) {
    var charcode = e.which;
    if ( (charcode === 8) || // Backspace
        (charcode >= 48 && charcode <= 57) || // 0 - 9
        (charcode >= 65 && charcode <= 90) || // a - z
        (charcode >= 97 && charcode <= 122)) { // A - Z
        console.log(charcode)
    } else {
        e.preventDefault()
        return
    }
});

http://jsfiddle.net/CC6BW/3/

必要のないものについては preventDefault することを忘れないでください

ラテン チャートはこちら: http://www.idautomation.com/product-support/ascii-chart-char-set.html

于 2013-05-16T10:29:44.093 に答える