我已经尝试过正则表达式仅接受数字。第一个字符不能是 0 和 “任何正整数,不包括 0”的正则表达式是什么 但是这并不符合我的要求。
我想要精确的 6 位数字,但不应以
0
开头
我已经尝试过
^[1-9][0-9]{6}*$
^([^0][0-9]){6}$
...
需要微调。
^[1-9][0-9]{6}*$
的问题是它是一个无效的正则表达式,因为{6}*
和^([^0][0-9]){6}$
是它允许任何不是0
的字符后跟六个数字。
使用
^[1-9][0-9]{5}$
说明:
^
:以锚点开始[1-9]
:精确匹配 1 到 9 中的一位数字[0-9]{5}
:精确匹配包含范围内的五位数字0-9
$
:以锚结束HTML5 演示:
input:invalid {
color: red;
}
<input type="text" pattern="[1-9][0-9]{5}" />
这个正则表达式涵盖了;
PIN 码不是从零开始
仅允许 6 位数字
允许 6 个连续数字(例如 431602)
3 位数字后留有 1 个空格(例如 431 602)
([1-9]{1}[0-9]{5}|[1-9]{1}[0-9]{3}\\s[0-9]{3})
一些网站和银行有在 3 位数字后分隔 pin 码的习惯。 要匹配 515411 和 515 411,以下模式会有所帮助。
^[1-9]{1}[0-9]{2}\s{0,1}[0-9]{3}$
input:invalid {
color: red;
}
<input type="text" pattern="[1-9][0-9]{5}" />