印度 pincode 验证正则表达式 - 只有六位数字,不应以“0”开头

问题描述 投票:0回答:4

我已经尝试过正则表达式仅接受数字。第一个字符不能是 0“任何正整数,不包括 0”的正则表达式是什么 但是这并不符合我的要求。

我想要精确的 6 位数字,但不应以

0

开头

我已经尝试过

^[1-9][0-9]{6}*$
^([^0][0-9]){6}$
...

需要微调。

javascript regex validating
4个回答
50
投票

^[1-9][0-9]{6}*$
的问题是它是一个无效的正则表达式,因为
{6}*
^([^0][0-9]){6}$
是它允许任何不是
0
的字符后跟六个数字。

使用

^[1-9][0-9]{5}$

说明:

  1. ^
    :以锚点开始
  2. [1-9]
    :精确匹配 1 到 9 中的一位数字
  3. [0-9]{5}
    :精确匹配包含范围内的五位数字
    0-9
  4. $
    :以锚结束

Regex Visualization

Regex101 游乐场

HTML5 演示:

input:invalid {
  color: red;
}
<input type="text" pattern="[1-9][0-9]{5}" />


3
投票

这个正则表达式涵盖了;

  1. PIN 码不是从零开始

  2. 仅允许 6 位数字

  3. 允许 6 个连续数字(例如 431602)

  4. 3 位数字后留有 1 个空格(例如 431 602)

([1-9]{1}[0-9]{5}|[1-9]{1}[0-9]{3}\\s[0-9]{3})

0
投票

一些网站和银行有在 3 位数字后分隔 pin 码的习惯。 要匹配 515411 和 515 411,以下模式会有所帮助。

^[1-9]{1}[0-9]{2}\s{0,1}[0-9]{3}$
  • ^[1-9]{1} - 以数字 1-9 开头的 PIN 码
  • [0-9]{2} - 接下来的两位数字的范围可能是 0-9
  • \s{0,1} - 可以出现一次或永不出现的空间
  • [0-9]{3}$ - 最后 3 位必须是 0-9 范围内的数字

0
投票

input:invalid {
  color: red;
}
<input type="text" pattern="[1-9][0-9]{5}" />

© www.soinside.com 2019 - 2024. All rights reserved.