Home > Back-end >  how to create a regular expression to validate the numbers are not same even separated by hyphen (-)
how to create a regular expression to validate the numbers are not same even separated by hyphen (-)

Time:06-02

Requirement is : Field is made of 1 alpha character followed by 15 alpha numeric characters including maximum 2 hyphens (-)

Regex:^(?!^(.)\\1*$)([A-Z]{1}(?=[A-Z0-9-]{2,15}$)[A-Z0-9]*(?:\\-[A-Z0-9]*){0,2}[A-Z0-9] $)

Above Regex is working fine but as the requirement it's not allowed the duplicate numbers like 1) N000000000000000 2)N000000-0000-0

the above 2 values not to allow as its has the same digit as "0".

CodePudding user response:

You can use

^[A-Z](?!\D*(\d)(?:\D*\1) \D*$)(?=.{2,15}$)[A-Z0-9]*(?:-[A-Z0-9]*){0,2}[A-Z0-9] $

See the regex demo. Inside the code, in your string literals, make sure you escape backslashes twice.

Details:

  • ^ - start of string
  • [A-Z] - an uppercase ASCII letter
  • (?!\D*(\d)(?:\D*\1) \D*$) - the string cannot contain only identical digits
  • (?=.{2,15}$) - there must be 2 to 15 chars other than line break chars to the right of the current position
  • [A-Z0-9]* - zero or more ASCII uppercase letters/digits
  • (?:-[A-Z0-9]*){0,2} - zero, one or two occurrences of - and then zero or more ASCII uppercas eletters/digits
  • [A-Z0-9] - one or more ASCII uppercase letters/digits
  • $ - end of string. `
  • Related