[英]How to limit number of digits using regex but allow zeros in front
我想将匹配限制为最多 7 位数字,但同时我想允许数字前面有零。 现在它允许诸如 0、1、12、123、1234、12345、123456、1234567 之类的数字,这是预期的。 这就是问题所在,我还想找到匹配数字(例如 0001234567 但不是 12345678)的匹配项。这是我正在使用的正则表达式:
/^[1-9][0-9]{0,6}$|^0$/g
试试这个/^0*[0-9]{7}$/
这应该这样做:
/^0*[1-9][0-9]{0,6}$/
它允许任意数量的前导零。
由于您也想匹配 0,您也可以使用交替来匹配 1+ 个以上的零
^(?:0*[1-9]\d{0,6}|0+)$
您也可以使用 parseInt 并检查字符串长度
const limitNumbers = s => parseInt(s, 10).toString().length < 8; const strings = [ "0", "1", "12", "123", "1234", "12345", "123456", "1234567", "0001234567", "12345678", ]; strings.forEach(s => console.log(`${s}: ${limitNumbers(s)}`))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.