簡體   English   中英

使用正則表達式驗證用戶名

[英]Validating userName using Regex

  1. 用戶名中唯一的數字必須在末尾。 最后可以有零個或多個。

  2. 用戶名字母可以是小寫和大寫。

  3. 用戶名必須至少有兩個字符長。 兩個字母的用戶名只能使用字母字符。

我正在嘗試這個,但我停滯不前。 /\\d+$\\w+/gi

/^[az]{2,}\\d*$/i是:

^     : the begining
[a-z] : a character (a to z), you can add as many allowed characters as you want
{2,}  : at least 2 of them
\d*   : 0 or more digits 
$     : the end
i     : ignore case sensetivity (both lowercases and uppercases are allowed)

用戶名包含字符和數字,最少 2 個字符長

/^[a-zA-Z]{2,}\d*$/i

測試結果 :

UserNam9 = pass
9username = fail
Userna99 = pass
usernameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee = pass
Us = pass
U = fail
/^[A-z]{2,}[A-z0-9]{0,}$/
/^ // start of line
[A-z]{2,} //alphabet characters 2 or more
[A-z0-9]{0,} //numbers and alphabet 
$/ // end of line

如果開頭有一個字母,后面跟有 2 個或更多數字,您就會漏掉這種情況。

U99 = fail
d345 = fail

我的解決方案也通過了這些測試:

/^[a-z]{2,}\d*$|(?=\w{3,})^[a-z]{1,}\d+$/i

使用正向前瞻,我確保在第二種情況下至少有 3 個字母數字字符。

/^[az]{2,}\\d*$|(?=\\w{3,})^[az]{1,}\\d+$/i簡化版本:

/^\D(\d{2,}|\D+)\d*$/i

代碼說明:

  1. ^ - 輸入開始
  2. \\D - 第一個字符是一個字母
  3. \\d{2,} - 以兩個或多個數字結尾
  4. | - 或者
  5. \\D+ - 接下來有一個或多個字母
  6. \\d* - 並以零個或多個數字結尾
  7. $ - 輸入結束
  8. i - 忽略輸入的大小寫

這是我的答案,它通過了所有測試:

/^[a-z][a-z]+\d*$|^[a-z]\d{2,}$/i
  • 第一部分:2 個字母(或更多)和零個或多個數字
  • 或者
  • 第二部分:1 個字母和 2 個或更多數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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