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

Sun*_*hoo 7 .net c# regex

净.我创建了一个正则表达式验证器来检查特殊字符意味着我不想要用户名中的任何特殊字符.以下是代码

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

如果我提供的用户名为$%^&asghf,则验证器提供无效数据格式,这是我想要的结果但是如果我提供数据s23 _ @ .- ^&()%^ $#那么我的验证器应该阻止数据但是我的验证器允许错误的数据

那么如何不允许任何特殊字符,除了az AA 0-9 _ @ .-

谢谢Sunil Kumar Sahoo

Spe*_*ort 14

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

其次,你目前只寻找一个角色.强制匹配你需要使用的所有角色*以下是它应该是什么:

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

  • 乐意效劳.在某些时候我们都犯了很大的错误. (3认同)