This is my code that checks if there are only alphanumeric characters filled in, but when i enter something like adasd@#$ it still matches and i have no idea why. Any idea how to fix this?
Match Match = Regex.Match(value.ToString(), "[0-9a-zA-Z]");
if (Match.Success)
{
return true;
}
else
{
return false;
}
Your regex
[0-9a-zA-Z]
checks for any alphanumeric character in the input string. Since it finds a, d, a, s, d in your input string, it returns true.What you need to do is place start and end enchors in your regex. New regex would look like this:
What you have matches any string that contains one letter or number somewhere in it.
You need to add anchors to the beginning and end of the string (
^
and$
), as well as a+
to allow for more than one character:This means "the entire string must be made of letters and numbers".
The
+
also requires that there is at least one character in the string. This is probably a good thing, but if you want to match empty strings, as well, you can change it to*
.