できる値 123456789が許可されていません 99.99 12345678.12小数は小数点
後8より大きく、2よりも大きくなる前に、桁数ながらユーザーを制限 - > 9番目の文字場合、ユーザーを制限する必要がありますそれは10進数でなければならない数字です。
できる値 123456789が許可されていません 99.99 12345678.12小数は小数点
後8より大きく、2よりも大きくなる前に、桁数ながらユーザーを制限 - > 9番目の文字場合、ユーザーを制限する必要がありますそれは10進数でなければならない数字です。
この機能を使用してみてください:
function isValidNumber(num) {
if (!parseInt(num) || (num.toString().length >= 9 && (num.toString().indexOf('.') == -1 || num.toString().indexOf('.') >= 9))) {
return false;
}
return !(num.toString().indexOf('.') >= 9);
}
あなたは文字のユーザーと数に言及し、私はあなたがそれぞれのキー押下後に、この入力をフィルタリングするために探していると仮定します。組み込みのHTML5数値入力属性を使用できますが、それらはonchangeでテストされます。つまり、onblurまでテストされません。
以下の解決策はoninputイベントに関連しているため、各キーを押すたびにトリガーされます。 minとmaxをテストし、値を文字列に変換して、小数点以下の桁数が多すぎないかどうかをテストします。もしあなたがそれをトリミングすることができますが、私はちょうどそれを丸めた。
var decimalInput = document.getElementById('decimal-input');
decimalInput.oninput = function() {
let decimalValue = decimalInput.value;
if (decimalValue < 0.01) {
decimalValue = 0.01;
}
if (decimalValue > 99999999.99) {
decimalValue = 99999999.99;
}
let decimalString = decimalValue + '',
decimalPos = decimalString.lastIndexOf('.');
console.log(decimalPos);
if (decimalPos != -1 && decimalString.length - decimalPos > 2) {
decimalValue = Number(decimalValue).toFixed(2);
}
decimalInput.value = decimalValue;
}
<input type="number" max="99999999.99" min="0.01" step="0.01" name="decimal-input" id="decimal-input" />
えっ...何?再び来る、許可された値の – user3532232
リストのようなものです:不可 20.00 10203040.50 値: 102030405.00 VARのx = number.value.split(」。 ")// [" 102030405 "、" 00 "] x [0]は常に最大8桁でなければなりません。ユーザーが8桁の数字の後に任意の数字を入力しようとすると、 8桁の後にユーザーが小数点のみを入力できる場合は、小数点以下2桁を入力できます(これはオプションです) –