Javascript HTML中输入框中的输入验证
我有一个输入框,只能接受0到100之间的值(允许浮动)。 是否有任何函数可以将输入框中的字符串值转换为十进制,以便比较 我已经尝试过parseFloat,但是如果字符串=“10Hi”,parseFloat仍将返回10 您可以使用以下功能:Javascript HTML中输入框中的输入验证,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个输入框,只能接受0到100之间的值(允许浮动)。 是否有任何函数可以将输入框中的字符串值转换为十进制,以便比较 我已经尝试过parseFloat,但是如果字符串=“10Hi”,parseFloat仍将返回10 您可以使用以下功能: parseFloat('12.5') 要进行验证,可以使用正则表达式: var isValid = (inputStr.match(/^-?\d*(\.\d+)?$/)); if (isValid == null) alert('in valid'
parseFloat('12.5')
要进行验证,可以使用正则表达式:
var isValid = (inputStr.match(/^-?\d*(\.\d+)?$/));
if (isValid == null)
alert('in valid');
else
alert('valid');
嗯,怎么样
您可以使用以下条件:
var str = "12.5", number;
if(isFinite(str) && str.indexOf(".") == -1)
number = parseFloat(str);
更新:
如果您只需要获得准确的数字,那么您可以简单地使用如下所示:
var str = "12.5", number;
if(isFinite(str))
number = +str;
所以它总是返回包含浮点值的有限数
如果str为“0x5f”,则返回值为95,因为它也是一个有效的十六进制数
要检查输入是否为0到100(含0到100)之间的十进制浮点,可以使用正则表达式排除字符串,如
'0x5e'
(它是介于0和100之间的数字的有效表示形式),然后可以将字符串转换为数字,以测试值是否在允许的范围内
e、 g
函数测试值(n){
变量re=/^\s*\d*(\d\.?\124;\.?\ d)\d*\s*$/;
var num=数量(n)
return re.test(n)&&n>=0&&n试试这个,parseFloat(“10”)
。解析之前是否尝试过使用正则字段验证器?因此您不允许每个操作使用“10.1”:“…允许浮动…”。更新了答案,因此它支持所有有效的数字格式。isFinite('0x5f')&&isFinite('2.3e1)//true
;-)不允许使用有效的十进制浮点数'.12'
或'12'
。是否考虑前导或尾随空格?是否免费使用jQuery:var v=this.value
更有效;-)
var str = "12.5", number;
if(isFinite(str))
number = +str;
$(".decimal").each(function(){
var v = $(this).val();
//pattern: integer or decimal
var valid = /^\d+$/.test(v) || /^\d+\.\d+$/.test(v);
});
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