我想检查一些字符串是否有无效字符。对于无效字符,我指的是不应该出现的字符。这些是什么字符?这是不同的,但我认为这并不重要,重要的是我应该怎么做,以及最简单和最好的方式(性能)是什么?
假设我只想要包含'A-Z'、'empty'、'.'、'$'、'0-9'
的字符串因此,如果我有一个像“HELLO STaCKOVERFLOW”这样的字符串 => 无效,因为 'a'。
好的,现在该怎么做?我可以做一个List<char>
并将不允许的每个字符放入其中,并使用此列表检查字符串。也许不是一个好主意,因为那时有很多字符。但是我可以制作一个包含所有允许字符的列表吗?然后?对于字符串中的每个字符,我必须比较 List<char>
?有什么智能代码吗?还有一个问题:如果我将 A-Z 添加到 List<char>
我必须手动添加 25 个字符,但据我所知,这些字符在 ASCII 表中为 65-90,我可以更轻松地添加它们吗?有什么建议么?谢谢
最佳答案
您可以为此使用正则表达式:
Regex r = new Regex("[^A-Z0-9.$ ]$");
if (r.IsMatch(SomeString)) {
// validation failed
}
要从 A-Z
或 0-9
创建一个字符列表,您可以使用一个简单的循环:
for (char c = 'A'; c <= 'Z'; c++) {
// c or c.ToString() depending on what you need
}
但是您不需要正则表达式 - 几乎每个正则表达式引擎都理解范围语法 (A-Z
)。
关于c# - 检查字符串中的无效字符?最聪明的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350801/