jQuery验证HTML输入的浮点数和整数

时间:2019-05-27 19:20:58

标签: javascript jquery html regex input

我有2种类型的HTML输入字段,第一种必须只接受整数(整数),这很好,这已经过验证并且可以正常工作。第二个输入必须接受整数(整数)或浮点数。这需要在绑定到输入字段的“ onkeypress”事件内发生。它不能接受带有多个小数点的输入,例如“ 32..2”,并且只能允许带有两个小数位的数字,例如“ 32.75”。这导致我遇到一些严重的问题,因为jQuery .val()方法无法检测到句号。

我尝试使用RegEx捕获句点的数量,并且它仅返回null,因为使用jQuery .val()方法获取初始字符串,但是正如我之前所说,它忽略了句点。

<input type="number" min="0" max="9999" step="any" class="form-control weight-input" onkeypress="return isValid(event, this)">

function isValid(e, elem) {

let charCode = (e.which) ? e.which : e.keyCode;

if ($(elem).hasClass("weight-input")) {
    if (charCode === 46 || charCode === 110 || charCode === 190) {
       return true;                             
    } else {
        return !(charCode > 31 && (charCode < 48 || charCode > 57 )) && $(elem).val().length <= 6;
    } else {
        return !(charCode > 31 && (charCode < 48 || charCode > 57 )) && $(elem).val().trim().length <= 5;
    }
}

另一种只需要接受整数值的输入绝对是正确的,并且验证是正确的,它直接进入底部的else语句。问题在if语句的当前位置显示“ return true”,这是我需要新的语句来验证浮点值的地方。

期望的输出是这样的:5.2、5.25、100.5、100.25。 可接受的数字不能超过7个字符,因此最大值为9999.99。

它不能接受负值或类似5..2、5.2。,..... 2之类的东西。

为了提供一些背景信息,它是针对一个文本字段的,该文本字段跟踪举起的重量,因此某些值将是完整的,而其他值将是浮点的。

0 个答案:

没有答案