I don't understand your problem with C#. For any character
ch
you, can easily check if it is an element of some set of "bad" characters, or it can be found in a set of the "good" characters:
if (System.Char.IsLetter(ch) || System.Char.IsDigit(ch))
string badCharacters = ".;*?^&";
if (badCharacters.Contains(ch))
However, if you want to constraint the character input in, say, text box, you should better not do it in C#, because on every input you will have a postback which would slow down things beyond anything tolerable. Then you need to have a JavaScript filtering out key presses based on the character code point. This is easy enough, too.
—SA