For a Username field there are certain varaitions that cannot be chosen as an appropiate username nor can certain characters be used.
For example: TIM1….TIM9 cannot be used BIN1….BIN9 cannot be used, nor can the characters <>:\/|?* appear anywhere in the field.
The code I have so far is thus:
private bool ValidateId(string regexValue)
{
Regex regex = new Regex("TIM[1-9]|BIN[1-9]|[<>:\"/|?*]");
return !regex.IsMatch(regexValue);
}
What I’m struggling to allow for however is the backslash character. Trying to escape it as I have done with the quotation character doesn’t appear to work.
Thanks in advance.
You need to do a double escape. Try this:
Explanation:
You need to escape the backslash in C# strings to get a backslash in the string. Additionally, the string needs to have two backslashes, because Regex also requires the backslashes to be escaped.
BTW, using verbatim strings makes it a bit more readable:
Both codes will result in a Regex with this expression: