Is it possible to check with regex:
I hope you can see what I mean. Hope the examples will help you to know what I mean.
Here is my solution(not working completely-> I don't know how to check if in case it starts with a 0 and it is 18 characters long the character on position 8 must be 7or8 or on position 9 the character must be 1):
^(?:[78]\d{10}|[1-69]\d{9}|[0]/d{18})$
For example:
Thank you!
You can use
^(?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9})$
See the regex demo
Details
^
- start of string(?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9})
- one of the three alternatives:
[78]\d{10}
- 7
or 8
and then 10 digits (11 all in all)|
- or1\d{9}
- 1
and then 9 digits (10 all in all)|
- or0\d{6}(?:[87]\d|\d1)\d{9}
- 0
, then 6 digits, then the 8th digit equal to 8
or 7
and any one digit, or any one digit and the 9th digit equal to 1
, and then 9 more digits (=18 digits)$
- end of string.