У меня есть одно текстовое поле, которое должно принимать десятичные числа, как 12345.678 Это текстовое поле должно принимать. до 5 знаков после запятой и после 3 десятичных знаков, как утверждать для этого типаКак проверить для десятичного числа
0
A
ответ
1
Вы можете использовать регулярные выражения для соответствия значениям из textarea. Обязательное регулярное выражение будет:
/^\d{5}\.{1}\d{3}$/
0
Это то, что вы ищете?
Fiddle:Demo
HTML
<input type="text" onkeypress = "return onlyDecimal(event,this)" onblur="validateValue(this)"/>
JS
function onlyDecimal(event, elem) {
var charCode = (event.which) ? event.which : event.keyCode;
console.log(elem.value.indexOf("."));
if(elem.value.length>=9)
{
validateValue(elem);
return false;
}
if (elem.value.indexOf(".") >= 0 && elem.value.split(".").length - 1 >= 0 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
if ((charCode == 190 || charCode == 110 || charCode == 46) && elem.value.length>=5) //for '.'
return true;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
}
function validateValue(elem){
if(elem.value.length<=9 && elem.value.indexOf(".") < 0)
{
alert("invalid value");
}
else if(elem.value.length<=9 && elem.value.indexOf(".") !=5)
{
alert("invalid value");
}
else if(elem.value.length>0 && elem.value.indexOf(".") >0)
{
var temp=elem.value.split(".");
if(temp[0].length<5 ||temp[1].length<3)
alert("invalid value");
}
}
'/\d{5}\.{1}\d{3}/ 'будет верно для каждого входа, который ** содержит ** часть, которая соответствует. Но он также будет соответствовать '00000.00000.00000' или' aaa00000.00000aaa' –
Просто нужно '^' в начале и '$' в конце. – David
@ t.niese да..только сделал..Thanks для headup! –