在输入中输入时,我将此函数与正则表达式结合使用以验证没有前导零的整数值:
$('input.input-number').keyup(function(e) {
var regexp = (/[^0-9]|^0+(?!$)/g);
if (regexp.test(this.value)) {
this.value = this.value.replace(regexp, '');
}
});
如何调整它以考虑浮点数。
该功能应:
不允许多个“。”符号:123.342.08 =无效/ 123.34208 =有效
不允许 '。'字符串开头的符号:.012 =无效/ 0.012 =有效
不允许整数部分中的前导零:00.012 =无效/ 0.012 =有效
不允许在小数点后半部分使用尾随零:10.012000 =无效/ 10.012 =有效
最佳答案
您可以使用!
运算符,如果字符串不只包含数字和RegExp
字符,并且以两个或多个/[^\d.]+|^(0{2}|\.)|(0$)|\.(?=\.|.+\.)/
字符或false
字符开头,或者结束,则返回"."
的字符串是"0"
,或者字符串包含"."
字符,后跟"0"
或一个或多个数字,后跟"."
,否则返回"."
和"."
const re = /[^\d.]+|^(0{2}|\.)|(0$)|\.(?=\.|.+\.)/;
console.log(
!re.test("123.342.08") // false
, !re.test(".012") // false
, !re.test("00.012") // false
, !re.test("10.012000") // false
, !re.test("0.012") // true
, !re.test("10.012") // true
, !re.test("123.34208") // true
)
关于javascript - 如何在键入时验证浮点数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43669322/