![](/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.