Javascript HTML中输入框中的输入验证

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'

我有一个输入框,只能接受0到100之间的值(允许浮动)。 是否有任何函数可以将输入框中的字符串值转换为十进制,以便比较

我已经尝试过parseFloat,但是如果字符串=“10Hi”,parseFloat仍将返回10

您可以使用以下功能:

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