Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Indian pincode validation regex - Only six digits, shouldn't start with `0`

I have tried Regex accept numeric only. First character can't be 0 and What is the regex for "Any positive integer, excluding 0" however that didn't work as per my requirements.

I want exact 6 digit numeric number but shouldn't start with 0

I've tried

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

Need fine tuning.

like image 946
Some Java Guy Avatar asked Nov 23 '15 07:11

Some Java Guy


2 Answers

The problem with ^[1-9][0-9]{6}*$ is it is an invalid regex because of {6}* and ^([^0][0-9]){6}$ is that it is allowing any character that is not 0 followed by six digits.

Use

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

Explanation:

  1. ^: Starts with anchor
  2. [1-9]: Matches exactly one digit from 1 to 9
  3. [0-9]{5}: Matches exactly five digits in the inclusive range 0-9
  4. $: Ends with anchor

Regex Visualization

Regex101 Playground

HTML5 Demo:

input:invalid {
  color: red;
}
<input type="text" pattern="[1-9][0-9]{5}" />
like image 57
Tushar Avatar answered Oct 24 '22 03:10

Tushar


This regular expression covers;

  1. PIN code doesn't start from zero

  2. Allows 6 digits only

  3. Allows 6 consecutive digits (e.g. 431602)

  4. Allows 1 space after 3 digits (e.g. 431 602)

([1-9]{1}[0-9]{5}|[1-9]{1}[0-9]{3}\\s[0-9]{3})
like image 23
Sumedh Deshpande Avatar answered Oct 24 '22 01:10

Sumedh Deshpande