3

これが開始するためのフィドルです - http://jsfiddle.net/zuVpx/1/

Javascript コード:

<script>
    function validate(e) {
        var regex = new RegExp("[a-zA-Z0-9]");
        var key = e.keyCode || e.which;
        key = String.fromCharCode(key);

        if(!regex.test(key)) {
            e.returnValue = false;
            if(e.preventDefault) {
                e.preventDefault();
            }
        }
    }
</script>

HTML コード:

<input type="text" onkeypress="validate(event)" />

文字と数字だけが欲しい。バックスペース、削除、capslock、矢印キーなどのキーが機能するはずです。

前もって感謝します。

4

5 に答える 5

5

入力に ​​an を追加しidて (例: 'validate')、次を使用します。

document.querySelector('#validate').onkeypress = validate;

function validate(e) {
        e = e || event;
        return /[a-z0-9]/i.test(
                   String.fromCharCode(e.charCode || e.keyCode)
               ) || !e.charCode && e.keyCode  < 48;
}

JSFiddle

于 2013-03-06T09:37:12.793 に答える
3

試す

/[-!$%^&*()_+|~=`\\#{}\[\]:";'<>?,.\/]/.test(your_variable)

一致する場合は true を返します。

于 2013-11-21T15:56:29.860 に答える
1

追加のif句を使用するだけではどうですか? 何かのようなもの...

key.charCodeAt(0) > 32

そう...

function validate(e) {
    var regex = new RegExp("[a-zA-Z0-9]");
    var key = e.keyCode || e.which;
    key = String.fromCharCode(key);

    if(!regex.test(key) && key.charCodeAt(0) > 32) {
        e.returnValue = false;
        if(e.preventDefault) {
            e.preventDefault();
        }
    }
}
于 2013-03-06T09:34:13.817 に答える
0

たとえば、左矢印キーがキーと同じkey値を生成するという問題を克服するには%、次を使用できます

function validate(e) {
    e = e || window.event;
    var bad = /[^\sa-z\d]/i,
        key = String.fromCharCode( e.keyCode || e.which );   

    if ( e.which !== 0 && e.charCode !== 0 && bad.test(key) ) {
        e.returnValue = false;
        if ( e.preventDefault ) {
            e.preventDefault();
        }
    } 
 }   

印刷可能な文字は、ゼロ以外の値を生成する必要がe.whichありe.charCodeます。JavaScript の狂気: キーボード イベント
を参照してください。

jsFiddle .

上記は、スペースが有効であることを前提としています。そうでない場合は\s、否定された文字クラスから を削除してください。

于 2013-03-06T09:42:09.347 に答える
0

これは私のために働いた。ユーザーが特殊文字を入力できないようにする (バックスペースなどを除く)

PatternValidation(e){

    if(!e.key.match(/^[a-zA-Z0-9]*$/))
       {
         e.preventDefault();
       }
},

これは、html 属性を keydown イベント ハンドラーにバインドすることによってトリガーされます。

<input type="text" onkeydown="PatternValidation($event)">
于 2020-11-05T10:13:05.570 に答える