Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check for special characters using regex

Tags:

c#

.net

regex

NET. I have created a regex validator to check for special characters means I donot want any special characters in username. The following is the code

Regex objAlphaPattern = new Regex(@"[[email protected]]");
            bool sts = objAlphaPattern.IsMatch(username);

If I provide username as $%^&asghf then the validator gives as invalid data format which is the result I want but If I provide a data [email protected]^&()%^$# then my validator should block the data but my validator allows the data which is wrong

So how to not allow any special characters except a-z A-A 0-9 _ @ .-

Thanks Sunil Kumar Sahoo

like image 735
Sunil Kumar Sahoo Avatar asked Feb 17 '10 09:02

Sunil Kumar Sahoo


2 Answers

There's a few things wrong with your expression. First you don't have the start string character ^ and end string character $ at the beginning and end of your expression meaning that it only has to find a match somewhere within your string.

Second, you're only looking for one character currently. To force a match of all the characters you'll need to use * Here's what it should be:

Regex objAlphaPattern = new Regex(@"^[[email protected]]*$");
bool sts = objAlphaPattern.IsMatch(username);
like image 183
Spencer Ruport Avatar answered Sep 18 '22 23:09

Spencer Ruport


Your pattern checks only if the given string contains any "non-special" character; it does not exclude the unwanted characters. You want to change two things; make it check that the whole string contains only allowed characters, and also make it check for more than one character:

^[[email protected]]+$

Added ^ before the pattern to make it start matching at the beginning of the string. Also added +$ after, + to ensure that there is at least one character in the string, and $ to make sure that the string is matched to the end.

like image 29
Fredrik Mörk Avatar answered Sep 17 '22 23:09

Fredrik Mörk