![](/img/trans.png)
[英]Regular Expression in JavaScript to allow only numbers with optional 2 decimals
[英]Regular expression in javascript that access decimals and numbers only
我想制作支持以下所有数字的正则表达式,
例子:
我试过
<input type='number' pattern="/^\\d{1,7}(\\.\\d{1,2})?$/"/>
但它不满足最大长度值。
请帮助解决这个问题。
通过前瞻检查长度。
↓ ↓ CHANGE THESE PARAMETERS
/^(?=(.[.]?){1,7}$)\d*([.]\d{1,2})?$/
|---------------| LOOK-AHEAD TO CHECK LENGTH
|-| INTEGER PORTION OF NUMBER
|-----------| OPTIONAL DECIMAL PORTION OF NUMBER
与其他解决方案相比,这更容易扩展到问题的变体,例如“最多七位总位数,最多四位小数”。 只需替换“更改这些参数”所指向的两个字符即可。
很确定这会为你做到:
^(\d{1,5}\.\d{2}|\d{1,6}\.\d|\d{1,7})$
任何 5.2 或 6.1 或 7 位数字(最大字符数)
这是模式的jsbin 。
var re = /^(\d{1,7}|\d{1,6}\.\d|\d{1,5}\.\d{1,2})$/;
function validate(str) {
return (str).match(re) !== null;
}
function assert(value, expected) {
return value === expected;
}
console.log(
assert(validate("1234567"), true)
);
console.log(
assert(validate("123456.7"), true)
);
console.log(
assert(validate("12345.67"), true)
);
console.log(
assert(validate("1234.567"), false)
);
console.log(
assert(validate("12345.678"), false)
);
console.log(
assert(validate("123456.78"), false)
);
console.log(
assert(validate("1234567.8"), false)
);
console.log(
assert(validate("12345678"), false)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.