c# - 如何使用正则表达式检查特殊字符

标签 c# .net regex

网络。我创建了一个正则表达式验证器来检查特殊字符意味着我不希望用户名中有任何特殊字符。以下是代码

Regex objAlphaPattern = new Regex(@"[a-zA-Z0-9_@.-]");
            bool sts = objAlphaPattern.IsMatch(username);

如果我以 $%^&asghf 的形式提供用户名,那么验证器将给出无效的数据格式,这是我想要的结果,但如果我提供数据 s23_@.-^&()%^ $# 然后我的验证器应该阻止数据但我的验证器允许错误的数据

那么如何不允许除 a-z A-A 0-9 _ @ .- 之外的任何特殊字符

谢谢 苏尼尔·库马尔·萨胡

最佳答案

你的表达有些问题。首先,您的表达式的开头和结尾没有起始字符串字符 ^ 和结束字符串字符 $,这意味着它只需要在您的某处找到匹配项字符串。

其次,您目前只在寻找一个角色。要强制匹配您需要使用的所有字符,* 应该是这样的:

Regex objAlphaPattern = new Regex(@"^[a-zA-Z0-9_@.-]*$");
bool sts = objAlphaPattern.IsMatch(username);

关于c# - 如何使用正则表达式检查特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279433/

相关文章:

.net - 转换 Word 文档时 Azure 云上的图像问题。使用 aspose.words 转换为 html

java - 如何使用具有多个参数的分隔符

.net - 在.net中创建透明 Angular PNG

c# - 涉及元素消失的奇怪问题

PHP:正则表达式与 ctype_*

Ruby - 使用扫描拆分多个字符串

c# - 在 asp.net 的单独类文件中添加和维护命名字符串

c# - C# 根据列将DataTable拆分为多个DataTable

c# - 直接解析子串为double

c# - 无法使用 c++/cli 包装器从 c# dll 加载函数