Check string for invalid characters? Smartest way?

I would like to check some string for invalid characters. With invalid characters I mean characters that should not be there. What characters are these? This is different, but I think thats not that importan, important is how should I do that and what is the easiest and best way (performance) to do that?

Let say I just want strings that contains 'A-Z', 'empty', '.', '$', '0-9'

So if i have a string like "HELLO STaCKOVERFLOW" => invalid, because of the 'a'. Ok now how to do that? I could make a List<char> and put every char in it that is not allowed and check the string with this list. Maybe not a good idea, because there a lot of chars then. But I could make a list that contains all of the allowed chars right? And then? For every char in the string I have to compare the List<char>? Any smart code for this? And another question: if I would add A-Z to the List<char> I have to add 25 chars manually, but these chars are as I know 65-90 in the ASCII Table, can I add them easier? Any suggestions? Thank you

Answers


You can use a regular expression for this:

Regex r = new Regex("[^A-Z0-9.$ ]$");
if (r.IsMatch(SomeString)) {
    // validation failed
}

To create a list of characters from A-Z or 0-9 you would use a simple loop:

for (char c = 'A'; c <= 'Z'; c++) {
    // c or c.ToString() depending on what you need
}

But you don't need that with the Regex - pretty much every regex engine understands the range syntax (A-Z).


Need Your Help

Set text table hsqldb java exception

java database file exception hsqldb

I have a matrix save in a txt file and I want to load it into an hsqldb table where each column in the matrix is loaded into a column in the table.

WPF/C# Combobox DataBinding

c# .net wpf xaml binding

To begin I would like to apologize for my english which is far from perfect (its not my native language...).