簡體   English   中英

正則表達式為字母數字密碼,至少包含1個數字和字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM