2017-06-20 8 views
0

1.00以上のフィールドを検証するにはどうすればよいですか?また、小数点2桁を含む必要があります。HTML番号の入力を有効にする

私はこの....

<input pattern="\d?\d\.\d\d" maxlength=5 size=5 onchange="check(this)"> 
    <script> 
    function check(elem) { 
     if(!elem.value.match(/^\d?\d\.\d\d$/)) { 
     alert('Error in data – use the format dd.dd (d = digit)'); 
     } 
    } 
    </script> 

を発見したが、それは99.99以上のものを許可していません。

申し訳ありませんこれを説明するために詳細を追加する必要があります。

Iは1.00又は10.00または単にさえ1000.00

を受け入れる必要はない

1または10または2.0または20.0これは整数および2小数点以下である必要が

どんな助けでも大歓迎です!それはすでに、長さが5つの文字だから

+1

を動作するはずです、あなたは必ず '入力MAXLENGTHは= 5' 99.99よりも高いことを防止されていないされていますか? – Poosh

+0

はい申し訳ありませんが、結果が表示されなくなりました。 – stevebrig

答えて

2

/^[1-9]+\d*\.\d{2}$/gはどこ

^[1-9] : makes sure the non-decimal part is greater than 0. 
\d* : allows trailing zeroes as in 1000 

const regex = /^[1-9]+\d*\.\d{2}$/g; 
 
const str = `1601.91`; 
 
let m; 
 

 
while ((m = regex.exec(str)) !== null) { 
 
    // This is necessary to avoid infinite loops with zero-width matches 
 
    if (m.index === regex.lastIndex) { 
 
     regex.lastIndex++; 
 
    } 
 
    
 
    // The result can be accessed through the `m`-variable. 
 
    m.forEach((match, groupIndex) => { 
 
     console.log(`Found match, group ${groupIndex}: ${match}`); 
 
    }); 
 
}

+0

'/^\ d * [123456789] + \。\ d {2} $/g'は10進数の左側に0桁がある場合に役立ちます。 – Poosh

+0

'[123456789] +' - ハァッ?あなたは '10.00'を許可しませんが、' 11.00'は許可しますか? – nnnnnn

+0

なぜ[[1-9] 'の代わりに' [123456789] ' –

関連する問題