2016-12-08 9 views
0
function test() { 
    var regex = new RegExp("^[0-9]{1,11}$"); 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    if (!regex.test(key)) { 
     event.preventDefault(); 
     return false; 
    } 
} 

整数のみを使用するのは正しいですが、最大長は機能しません。それは11桁以上かかります。正規表現の最大長は機能しません。

+2

達成しようとしているものは何ですか? – Satpal

+4

あなたは '{1,11}'を満たす1文字を渡しています。 –

+2

これは頻繁に起こる質問ですが、共振は正規表現に対して1つの文字をテストすることです。あなたは 'maxlength'属性を使う必要があります。また、 'pattern =" \ d {1,11} "'属性を追加して、submitの入力の有効性を確認することもできます。 –

答えて

0

あなたが言ったように:

を私は数字のみを書き込むようにして最大の長さは11(11)の数字でなければなりません許可を与えたいです。

次のことができます。

  1. 正規表現/^\d{1,11}$/

document.addEventListener('DOMContentLoaded', function() { 
 
function valueIsValid(v) { 
 

 
    return /^\d{1,11}$/.test(v); 
 
} 
 
    var foo = document.querySelector('#foo'); 
 

 
foo 
 
    .addEventListener('change', function() { 
 
    console.log('valid', valueIsValid(foo.value), foo.value) 
 
    }) 
 
; 
 
});
<input id="foo" />

+0

を使用しています。テキストボックスは降順の矢印を示しています。 –

+0

http://stackoverflow.com/questions/3790935/can-i-hide-the-html5-number-input-s-spin-box – Hitmands

+0

私はを使用していますが、これらの文字はそのままです。 + - は、type = 'number'に書き込まれます。 –

0

これを使用<input type="number" maxlength="11" />

  • を使用あなたの質問から私が理解したものです。このようなことを試してみてください。

    var count = 0; 
    
    function test() { 
        var regex = new RegExp("^[0-9]{1,11}$"); 
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    
        if(count<11){ 
        if (!regex.test(key)) { 
         count=0; 
         event.preventDefault(); 
         return false; 
        } 
        count++; 
        } 
        return false; 
    } 
    
  • 0

    手動入力の検証のこの種のアプリケーションは通常、HTML5でこのごろ書かれている方法ではありません。それは悪い古いjQueryの日の後戻りです。単にキーストロークを捨てるのは悪いユーザーエクスペリエンスです。ユーザーは何が間違っているのか分かりませんし、キーボードが壊れていると思うかもしれません。 keyupイベントでトラップした場合、ユーザーがテキストをドラッグして入力ボックスにドロップした場合など、いくつかのシナリオも見逃してしまいます。ユーザーがタイプボックスにテキストを貼り付けるCTRL + V場合は、あなたの代わりに貼り付けた文字のキーストロークを見てしまいます。

    HTML5はあなたを可能にinput要素にpattern属性を追加しますregexpベースの検証を行います。これには多くの利点があります。たとえば、無効なエントリは、:invalid疑似クラスを持つCSSを使用してスタイル設定することができます。無効なフォームエントリは、送信を自動的に防止し、特定の問題を説明するユーザーフレンドリーなバルーンを表示します。彼らは、この場合、暗黙のです - 何^$アンカーが必要とされていないことを

    <input pattern="\\d{1, 11}"> 
    

    注:お使いの場合には

    JSは必要ありません。

    関連する問題