[英]Regex for alphanumeric password, with at least 1 number and character
需要有關字母數字密碼的正則表達式的幫助,至少包含1個數字和字符,長度必須在8到20個字符之間。
我有這個,但似乎沒有工作(它也沒有長度要求):
^[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*$
如果您查看此MSDN鏈接 ,它會給出一個密碼驗證RegEx表達式的示例,以及(更具體地說)如何在ASP.NET中使用它。
對於你想要完成的任務,這應該工作:
(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,20})$
這需要至少一個數字,至少一個字母字符,沒有特殊字符,長度為8-20個字符。
為什么不使用一些簡單的功能來檢查?
checkPasswordLength( String password);
checkPasswordNumber( String password);
可能還需要一些重復和連續檢查相同字符的出現次數。
^(?=.{8,20}$)(?=.*[0-9])(?=.*[a-zA-Z]).*
? :)
使用一些簡單的字符串函數進行驗證,而不是試圖將難以驗證的正則表達式用於執行此操作,這不是更好嗎?
這樣的事情將更接近您的需求。 (不過,我沒有測試過。)
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.
}
此代碼適用於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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.