3

正規表現パターンを持つ入力フィールドの場合:

<input type="text" maxlength="4" inputmode='numeric' pattern="\d*">

次のような方法で属性を解析することにより、JavaScriptを使用して入力を検証したいと思います(これは機能しません)。pattern

$('input').on('keypress', function(e){
    var regex = this.pattern,
        valid = eval(regex).test( e.charCode );

    if( !valid )
        return false;
});

パターン内の正規表現が JS で使用されるものとは異なることはわかっていますが、パターンで許可されている文字のみを入力できるようにするために、このメソッドが機能するように正規表現を変換する方法が必要です。

4

3 に答える 3

5

RegExpコンストラクターを使用します。

var regex = this.pattern,
    valid = new RegExp("^"+regex+"$").test( e.charCode );

しかし、あなたのパターンはおそらく\d+ではなく であるはず\d*です。

于 2013-10-18T11:11:04.847 に答える
1

文字列の最初と最後を追加するだけです"^"+your reg ex here+"$"

于 2013-10-18T11:12:38.123 に答える
0

もしかしたら、このプラグインを使用できるかもしれません。html5 の機能が使用できない場合 (古いブラウザー) はエミュレートされます。

于 2013-10-18T11:17:48.163 に答える