谁能帮助我如何在javascript或regEx上将整数限制为12位小数点后2位,以便验证文本框上的输入?
例如
999999999999.99 - valid
99999999.999 - invalid
1234584.58 -valid
1.99 - valid
1000000000000 - invalid
谁能帮助我如何在javascript或regEx上将整数限制为12位小数点后2位,以便验证文本框上的输入?
例如
999999999999.99 - valid
99999999.999 - invalid
1234584.58 -valid
1.99 - valid
1000000000000 - invalid
您可以使用正则表达式;
^[0-9]{1,12}\.[0-9]{2}$
给定的是错误的:它不会验证 12 位数字
^[0-9]{1,12}\.[0-9]{2}$
1920304049.09 // OK
192030404985 // not ok
1.34 // ok
33.98 // ok
33.9 // not ok
以下将
^(\d{1,12})(\.\d\d)?$
1920304049.09 // OK
192030404985 // ok
1.34 // ok
33.98 // ok
33.9 // not ok
不需要正则表达式。
function check(string){
var list = string.split('.');
if(parseInt(string[0], 10) > 0 && parseInt(string[1], 10) > 0){
if(list.length != 2){
return false;
}
else if(list[0].length <= 12 && list[1].length <= 2){
return true;
}
else{
return false;
}
} else{
return false;
}
}
if(check(1000000000000) == true){
alert('valid');
}
else{
alert('invalid');
}
我没有测试它,但它应该可以工作。
我明白了,而且效果很好。下面是正则表达式和测试数据
^[0-9]{1,12}((\.[0-9]{1,2})|)$
123456789123.12 - okay
958.1 - okay
1578463499915 - not (13 numbers)
1548745654485.125 - not (13 numbers and 3 decimals)
5487564.325 - not (3 decimals)
54843. - not (will also validated because no decimal number but have decimal point
112457844.12 - okay
12.12 - okay
512.00 - okay
25867s56.5 - not (have letter)
654.01 - okay
1 - okay
01 - okay
00048 - okay