For instance:
'1' => NG
'243' => NG
'1av' => OK
'pRo' => OK
'123k%' => NG
I tried with
/^(?=^[^0-9]*$)(?=[a-zA-Z0-9]+)$/
but it is not working very well.
For instance:
'1' => NG
'243' => NG
'1av' => OK
'pRo' => OK
'123k%' => NG
I tried with
/^(?=^[^0-9]*$)(?=[a-zA-Z0-9]+)$/
but it is not working very well.
Use
/^(?![0-9]*$)[a-zA-Z0-9]+$/
This expression has a negative lookahead to verify that the string is not only numbers. See it in action with RegExr.
So we know that there must be at least one "alphabetic" character in there somewhere:
[a-zA-Z]
And it can have any number of alphanumeric characters (including zero) either before it or after it, so we pad it with [a-zA-Z0-9]*
on both sides:
/^[a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]*$/
That should do the trick.
Try with this:
/^(?!^\d*$)[a-zA-Z\d]*$/
Edit: since this is essentially the same of the accepted answer, I'll give you something different:
/^\d*[a-zA-Z][a-zA-Z\d]*$/
No lookaheads, no repeated complex group, it just verifies that there's at least one alphabetic character. This should be quite fast.
try with this: ^(?!\d+\b)[a-zA-Z\d]+$
(?!\d+\b)
will avoid pure numeric, add \w+ then mix alphabet and number.
This should do the trick, without lookbehind:
^(\d*[a-zA-Z]\d*)+$
Try this: ^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$
this is strictly alphanumeric
String name="^[^a-zA-Z]\\d*[a-zA-Z][a-zA-Z\\d]*$";