to validate the text using the regex which allows one space or hyphen start with 97.
regex: ^97(?=[0-9] [ -]?[0-9] )(?!([0-9])(?:\1|[ -]){2}).{3}$
ex: 97123 valid
97-12 valid but not working as per the above reg
971-2 valid
9712- not valid
CodePudding user response:
You can use
^(?=[0-9] (?:[ -][0-9] )?$)(?!([0-9])(?:\1|[ -]){2})97.{3}$
See the regex demo
The first lookahead, (?=[0-9] (?:[ -][0-9] )?$)
, now requires
[0-9]
- one or more digits(?:[ -][0-9] )?
- an optional occurrence of a space or hyphen and then one or more digits$
- end of string
to be present immediately to the right of the current location (that is the start of string).
CodePudding user response:
Your requirements can be covered with this simplified regex:
^97(?=.{3}$)(?:[ -]?\d) $
RegEx Breakup:
^
: Start97
: Match97
(?=.{3}$)
: Match 3 more character till end(?:[ -]?\d)
: Match an optional hyphen or space followed by a digit. Match this non-capturing group 1 times$
: End