Reputation: 685
Got a bit stuck (RegEx isn't my strong point at all!) - I need an expression that will validate against any string containing only numbers and letters but must have at least one of each (upper and lowercase are interchangeable and allowed). It cannot contain special characters or whitespace.
Doing some prior research I have found this but it doesn't exclude whitespace and despite my attempts to do so I cannot modify it to exclude whitespace and special characters:
^.*(?=.*\d)(?=.*[a-zA-Z]).*$
Some examples of strings that need to validate:
Any help would be much appreciated! If it matters I am running these expressions in JavaScript.
Upvotes: 5
Views: 3437
Reputation: 7078
Another attempt for fun and glory! (it's shorter!)
^([a-z]+\d+|\d+[a-z]+)\w*$
EDIT3:
Made a small fix and it's now DOUBLE the speed of the other answer!!!
Upvotes: 2
Reputation: 1353
Iv done a demo on regxr 1.0 based on what I understood from your question.
If you follow this link you can see the demo yourself: Regexr demo
UPDATED:
The regex is :
/^([a-z]+[0-9]+|[0-9]+[a-z]+)$/
You can make it case in sensitive:
/^([a-z]+[0-9]+|[0-9]+[a-z]+)$/i
Upvotes: -4
Reputation: 44823
Try this:
/^(?=.*[a-z])(?=.*\d)[a-z\d]+$/i
Explanation:
Edit: Fixed special characters issue.
Upvotes: 7