微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 检查字符串是否包含无效字符?最聪明的方式?

我想检查一些字符串是否有无效字符.对于无效字符,我的意思是不应该存在的字符.这些是什么字符?这是不同的,但我认为那不重要,重要的是我应该怎么做以及最简单和最好的方式(性能)做到这一点?

假设我只想要包含’A-Z’,’空’,’.’,’$’,’0-9’的字符串

所以,如果我有一个字符串,如“HELLO STaCKOVERFLOW”=>无效,因为’a’.
好现在该怎么做?我可以制作一个List< char>并将不允许的每个字符放入其中,并使用此列表检查字符串.也许不是一个好主意,因为当时有很多角色.但我可以制作一个包含所有允许的字符的列表吗?然后?对于字符串中的每个字符,我必须比较List< char&gt ;?任何智能代码?还有一个问题:如果我要将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).

原文地址:https://www.jb51.cc/csharp/100849.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐