I have to validate version number pattern for following examples:
A1
aabc1
AabC134
aabc12.2
aA1.2.3
0.1.1
0.0.2
a.b.c
a.1.2
a.0.0
1.0.0
1.0
1
B
You may use
/^(?![0.]+$)[A-Za-z0-9]+(?:\.[A-Za-z0-9]+){0,2}$/
Or,
/^(?![0.]+$)[A-Z\d]+(?:\.[A-Z\d]+){0,2}$/i
See the regex demo
Details
^
- start of string(?![0.]+$)
- no just zeros / dots till the end of string[A-Za-z0-9]+
- one or more digits/letters(?:\.[A-Za-z0-9]+){0,2}
- 0, 1 or 2 repetitions of .
and 1+ digits or letters$
- end of stringRegex graph:
I might just use negative lookaheads to assert that the blacklisted version numbers do not appear, and otherwise proceed along the lines of what you are already doing:
^(?!^(?:0|0\.0\.0|000\.000\.000|0000\.00\.00)$)[A-Za-z0-9]+(?:\.[A-Za-z0-9]+){0,2}$
Demo