繁体   English   中英

正则表达式包含所有特殊字符

[英]Regex to include all special characters

我似乎找不到任何合适的答案。

我需要一个正则表达式来确保至少有one special characterone numberone upper one lower和至少 8 个长。

我这里有一些,但出于某种原因,当我添加更多字符时,它无法识别它们。

ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%.*?&]{8,}" 

我想添加每个特殊字符。

请尽量避免使用冗长而复杂的正则表达式,因为以后很难理解和修改它们。 而是定义几个简单直接的Regex,然后结合c#代码

var hasLowercaseChar = new Regex("[a-z]");
var hasUppercaseChar = new Regex("[A-Z]");
var hasDigitChar = new Regex("[0-9]");
var hasSpecialChar = new Regex("\\$!\\^-@%&\\.\\*");

var input = "" // your input string here
var passwordIsValid = hasLowercaseChar.IsMatch(input)
    && hasUppercaseChar.IsMatch(input)
    && hasDigitChar.IsMatch(input)
    && hasSpecialChar.IsMatch(input)
    && input.Length >= 8;

在上面的例子中,每个正则表达式都很简单,即使你不确定它应该匹配什么,你也可以从变量名中推断出来

以下正则表达式应该可以解决问题: ^(?=.*[az])(?=.*[AZ])(?=.*\\d)(?=.*\\W)[\\S]{8,}$

试试正则表达式: (?=.*[az])(?=.*[AZ])(?=.*\\d)(?=.*[$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\\];'#,.\\/\\\\-])[A-Za-z\\d$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\\];'#,.\\/\\\\-]{8,}

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM