在我的RegEx项目中,我试图用一个简单的asp.net项目替换密码验证,该项目使用正则表达式验证器。
以下是密码限制:
我是regex的n00b,这是我要求勺喂的唯一问题;)
我在regex下面尝试过,但在少数情况下失败了。
string re1="([a-z])"; // Any Single Word Character (Not Whitespace) 1
string re2=".*?"; // Non-greedy match on filler
string re3="."; // Uninteresting: c
string re4=".*?"; // Non-greedy match on filler
string re5="."; // Uninteresting: c
string re6=".*?"; // Non-greedy match on filler
string re7="(.)"; // Any Single Character 1
string re8="(\\d)"; // Any Single Digit 1
Regex r = new Regex(re1+re2+re3+re4+re5+re6+re7+re8,RegexOptions.IgnoreCase|RegexOptions.Singleline);
Match m = r.Match(txt)发布于 2014-01-07 03:47:41
使用这样的模式:
^(?=.*[a-z])(?=.*[0-9])(?=.*[...]).{6,15}$在这里,您可以用任何您想要接受的“特殊字符”替换[...]。
要把它分解一下:
^)和结束($)锚点确保输入中没有前导字符或尾随字符。这对于确保最大长度被强制执行是必要的。.{6,15}位匹配任何字符的6到15个字符。(?=...)是向前看的。它确保匹配的位置遵循在内部出现的任何模式。- The `.*[a-z]` means any number of characters followed by a single Latin letter.
- Similarly, `.*[0-9]` matches any number of characters followed by a decimal digit, and `.*[...]` matches any number of characters followed by one of your 'special characters'.
(?=.*[a-z])(?=.*[0-9])(?=.*[...])链意味着所有这三种模式都必须以任何顺序出现在下面的字符串中。发布于 2014-01-07 03:47:02
我对此也很陌生,我发现了一篇关于验证文件名的帖子,这个帖子应该也是一样的。
if(preg_match('/^[a-z0-9-_]+$/',$file_name))
{
echo 'good filename';
}
else
{
echo ' The file name can only contain "a-z", "0-9", "_", and "-"';
}这将检查它是否包含某些字符,您可以使用这些字符检测密码中的数字和字母。另外,如果我是您,我还会将密码与常见密码列表(如"password"、"password123"等)进行比较。
https://stackoverflow.com/questions/20963522
复制相似问题