印度邮政编码验证正则表达式 - 只有六位数字,不能以`0`开头。

11
3个回答

49

^[1-9][0-9]{5,}$是一个有效的正则表达式,它只允许数字,且第一位数字不能为零,并且至少有六个数字。

使用:

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

解释:

  1. ^: 匹配字符串的开始位置(锚点)
  2. [1-9]: 匹配一个1到9的数字
  3. [0-9]{5}: 匹配恰好包含5个数字的范围在0-9内的数字
  4. $: 匹配字符串的结束位置(锚点)

正则表达式可视化

Regex101 Playground

HTML5演示:

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


1
“^[1-9][0-9]{6}*$” 的问题在于它是一个无效的正则表达式。 - Amit

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
一些网站和银行有在输入密码后三位数字后加空格的习惯。 为了匹配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}$ - 最后三个数字需要是0-9之间的数字

{1}可以被移除。您可以将\s{0,1}写成\s? - Tushar
是的,{1} 可以被移除。但是如果你移除 \s{0,1},空格将被视为必须的。 - Kavvya Ramarathnam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接