0
点赞
收藏
分享

微信扫一扫

正则表达式验证数字最多六位整数,六位小数

要创建一个正则表达式,限制输入为 最多6位整数和最多6位小数 的数字(不能有其他字符),可以使用以下正则表达式:

正则表达式:

^(?:\d{1,6}(?:\.\d{1,6})?|\.\d{1,6})$|^0(?:\.\d{1,6})?$

解释:

  1. ^\d{1,6}(?:\.\d{1,6})?$
  • \d{1,6}:1到6位整数部分。
  • (?:\.\d{1,6})?:可选的小数部分,.后跟1到6位数字。
  1. ^\.\d{1,6}$
  • 允许以小数点开头(如 .123456),后跟1到6位数字。
  1. ^0(?:\.\d{1,6})?$
  • 允许 00.123456 这样的形式,防止 01234 这样的前导零(除非是 0 本身)。

完整正则(优化版):

^(?!0\d)(?:\d{1,6}(?:\.\d{1,6})?|\.\d{1,6})$|^0(?:\.\d{1,6})?$

  • (?!0\d) 确保不以 0 开头后跟其他数字(如 0123 不合法,但 00.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} 即可。

举报

相关推荐

0 条评论