需要有关字母数字密码的正则表达式的帮助,至少包含1个数字和字符,长度必须介于8到20个字符之间。
我有这个,但似乎没有工作(它也没有长度要求):
^[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*$
答案 0 :(得分:9)
如果你看看这个MSDN link,它给出了一个密码验证RegEx表达式的例子,以及(更具体地说)如何在ASP.NET中使用它。
对于你想要完成的任务,这应该有效:
(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,20})$
这需要至少一个数字,至少一个字母字符,没有特殊字符,长度为8-20个字符。
答案 1 :(得分:3)
为什么不使用一些简单的函数来检查?
checkPasswordLength( String password);
checkPasswordNumber( String password);
可能还需要多次重复和连续检查相同字符的出现次数。
答案 2 :(得分:1)
^(?=.{8,20}$)(?=.*[0-9])(?=.*[a-zA-Z]).*
? :)
答案 3 :(得分:0)
使用一些简单的字符串函数进行验证,而不是试图将难以验证的正则表达式用于执行此操作,这不是更好吗?
答案 4 :(得分:0)
这样的事情将更接近您的需求。 (不过,我没有测试过。)
Regex test = new Regex("^(?:(?<ch>[A-Za-z])|(?<num>[9-0])){8,20}$");
Match m = test.Match(input);
if (m.Success && m.Groups["ch"].Captures.Count > 1 && m.Groups["num"].Captures.Count > 1)
{
// It's a good password.
}
答案 5 :(得分:0)
此代码适用于javascript
// *********** ALPHA-Numeric check ***************************
function checkAlphaNumeric(val)
{
var mystring=new String(val)
if(mystring.search(/[0-9]+/)==-1) // Check at-leat one number
{
return false;
}
if(mystring.search(/[A-Z]+/)==-1 && mystring.search(/[a-z]+/)==-1) // Check at-leat one character
{
return false;
}
}