下面的正则表达式要求密码有1个数字,1个字符(上限或下限),最小长度为8。但是如果我输入一个特殊的字符,它会返回false。我不想要一个特殊的字符,但我想在这种情况下允许它。我怎样才能改变这个正则表达式来允许一个特殊的字符?允许特殊字符的正则表达式?
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")
下面的正则表达式要求密码有1个数字,1个字符(上限或下限),最小长度为8。但是如果我输入一个特殊的字符,它会返回false。我不想要一个特殊的字符,但我想在这种情况下允许它。我怎样才能改变这个正则表达式来允许一个特殊的字符?允许特殊字符的正则表达式?
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z])\w{8,}$")
更改 “\ W” 到 “”应该这样做:
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$")
\ W匹配“字”字,这通常不会匹配特殊字符(取决于您的“特殊”和语言你使用的定义)。
。将匹配除换行符以外的任何字符
为什么不做3次单独的检查,这样您可以清楚地检查密码是否符合所需参数,但不必维护大型正则表达式?
if (Regex.IsMatch(Password, "\d") &&
Regex.IsMatch(Password, "\w") &&
Password.length >= 8) //psuedo-code
这不会限制任何字符。它会检查密码是否至少有一个单词字符,至少有一个数字,并且至少有8个字符长。
Toran,如果你不希望允许空白密码中使用以下命令:
Regex.IsMatch(Password, "^(?=.*[0-9])(?=.*[a-zA-Z]\S{8,}$")
任何特殊字符?请明确说明。 – mveerman 2009-07-21 14:25:34