[英]Input validation in input box in HTML
我有一个输入框,只能接受0到100之间的值(允许浮动)。 有什么功能可以将输入框中的字符串值转换为十进制,以便我可以比较它?
我已经尝试过parseFloat,但是如果字符串=“ 10Hi”,parseFloat仍将返回10。
您可以使用parseFloat函数:
parseFloat('12.5')
为了进行验证,您可以使用正则表达式:
var isValid = (inputStr.match(/^-?\d*(\.\d+)?$/));
if (isValid == null)
alert('in valid');
else
alert('valid');
好吧, isFinite呢?
isFinite(10) // true
isFinite('10.1'); // true
isFinite('10Hi') // false
$(".decimal").each(function(){
var v = $(this).val();
//pattern: integer or decimal
var valid = /^\d+$/.test(v) || /^\d+\.\d+$/.test(v);
});
要检查输入是否为从0到100(含0和100)的十进制浮点数,可以使用正则表达式排除诸如'0x5e'
类'0x5e'
字符串(它是0到100之间数字的有效表示形式),然后可以将该字符串转换为测试值的数字在允许的范围内。
例如
function testValue(n) {
var re = /^\s*\d*(\d\.?|\.?\d)\d*\s*$/;
var num = Number(n)
return re.test(n) && n >= 0 && n <= 100;
}
['12','12.','.12','12.2','0x5e'].forEach(function(v) {
console.log(v + ' : ' + testValue(v));
});
12 : true
12. : true
.12 : true
12.2 : true
0x5e : false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.