Search code examples
javascriptregexvalidating

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.


Solution

  • 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}" />