js正则表达式校验十位的数字,不足十位的前面补0也可以被校验通过应该怎么写?

  1. 如1234,可以匹配,0000001234也可以校验通过
  2. 12345可以校验通过,0000012345也可以校验通过
  3. 123456789可以校验通过,0123456789也可以校验通过
  4. 0000000000不可以校验通过
阅读 3k
3 个回答
^(?!0+$)\d{1,10}$

/^(0*[1-9]\d{0,9})$/
这个正则表达式的含义是:

^ 开始符号,表示匹配字符串的开始。
0* 匹配 0 或 更多个 0。
[1-9] 匹配1到9之间的任何数字。
\d{0,9} 匹配0到9次任何数字,即0到9之间的数字,可以不出现,也可以出现最多9次。
$ 结束符号,表示匹配字符串的结束。
这个正则表达式可以匹配最多十位的数字,如果不足十位,前面可以有任意个0,但至少有一位非0数字。

let reg = /^(0*[1-9]\d{0,9})$/;

console.log(reg.test('1234'));        // true
console.log(reg.test('0000001234'));  // true
console.log(reg.test('12345'));       // true
console.log(reg.test('0000012345'));  // true
console.log(reg.test('123456789'));   // true
console.log(reg.test('0123456789'));  // true
console.log(reg.test('0000000000'));  // false
var regex = /^(0*[1-9]\d{0,8}|0{0,9}[1-9]\d*)$/;

企业微信截图_16907700561611.png

企业微信截图_16907700831305.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题