要创建一个正则表达式,限制输入为 最多6位整数和最多6位小数 的数字(不能有其他字符),可以使用以下正则表达式:
正则表达式:
^(?:\d{1,6}(?:\.\d{1,6})?|\.\d{1,6})$|^0(?:\.\d{1,6})?$
解释:
^\d{1,6}(?:\.\d{1,6})?$
\d{1,6}
:1到6位整数部分。(?:\.\d{1,6})?
:可选的小数部分,.
后跟1到6位数字。
^\.\d{1,6}$
- 允许以小数点开头(如
.123456
),后跟1到6位数字。
^0(?:\.\d{1,6})?$
- 允许
0
或0.123456
这样的形式,防止01234
这样的前导零(除非是0
本身)。
完整正则(优化版):
^(?!0\d)(?:\d{1,6}(?:\.\d{1,6})?|\.\d{1,6})$|^0(?:\.\d{1,6})?$
(?!0\d)
确保不以0
开头后跟其他数字(如0123
不合法,但0
或0.123
合法)。
测试用例:
✅ 合法输入:
123456
123.456789
.123456
0.123456
0
❌ 非法输入:
1234567
(整数部分超过6位)123.4567890
(小数部分超过6位)01234
(前导零)abc
(非数字)123.
(小数点后无数字)
代码示例(JavaScript):
const regex = /^(?!0\d)(?:\d{1,6}(?:\.\d{1,6})?|\.\d{1,6})$|^0(?:\.\d{1,6})?$/;
function validateInput(input) {
return regex.test(input);
}
// 测试
console.log(validateInput("123456")); // true
console.log(validateInput("123.456789")); // true
console.log(validateInput(".123456")); // true
console.log(validateInput("01234")); // false
console.log(validateInput("1234567")); // false
适用场景:
- 金额输入(如最多6位整数+6位小数)。
- 科学计算中的精度限制。
- 表单验证,确保用户输入符合数值格式要求。
如果需要调整位数(如改为2位小数),只需修改 \d{1,6}
为 \d{1,2}
即可。