亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式 |限制可能的用戶名

正則表達式 |限制可能的用戶名

qq_遁去的一_1 2022-08-04 10:35:15
問題以下是用戶在創建用戶名時必須遵循的一些簡單規則。1) 用戶名只能使用字母數字字符。2)用戶名中唯一的數字必須在末尾。最后可以有零個或多個。用戶名不能以數字開頭。3)用戶名字母可以是小寫和大寫。4)用戶名必須至少兩個字符長。雙字符用戶名只能使用字母作為字符。我的代碼let username = "JackOfAllTrades";let userCheck = /^(a-za-z|a-z(a-z+|\d\d+))(\d*)$/i; let result = userCheck.test(username);
查看完整描述

5 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

解決方案 1:


let username = "JackOfAllTrades";

let userCheck = /^[a-z]([0-9][0-9]+|[a-z]+\d*)$/i;

let result = userCheck.test(username);

代碼說明

  • ^ - 輸入的開始

  • [a-z] - 第一個字符是一個字母

  • [0-9][0-9]+ - 以兩個或多個數字結尾

  • |- 或

  • [a-z]+ - 下一個包含一個或多個字母

  • \d* - 并以零個或多個數字結尾

  • $ - 輸入結束

  • i - 忽略輸入的情況

解決方案 2:

let username = "JackOfAllTrades";

const userCheck = /^[a-z]([0-9]{2,}|[a-z]+\d*)$/i;

let result = userCheck.test(username);

代碼說明

  • ^ - 輸入的開始

  • [a-z] - 第一個字符是一個字母

  • [0-9]{2,0} - 以兩個或多個數字結尾

  • |- 或

  • [a-z]+ - 下一個包含一個或多個字母

  • \d* - 并以零個或多個數字結尾

  • $ - 輸入結束

  • i - 忽略輸入的情況


查看完整回答
反對 回復 2022-08-04
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

這是我的解決方案:

 /^[a-z][a-z]+$|^[a-z]+\w\d+$/i

/^ - 在字符串的開頭,找到

[a-z][a-z]+$ - 至少2個字母,可以更多,直到最后(這意味著像test12這樣的字符串不會在這個字母中通過)

|- OR(對于它有更多的數字和超過2個字符的情況^[a-z]+ - 以任何字母開頭,可以更多

\w - 任何字符,可以是 a-z 和 0-9,它以這種方式用于強制字符串至少包含 3 個字符

\d+$ - 以至少具有一個數字的鏈結尾(如果它的末尾沒有至少一個數字,它將在條件的第一個中匹配)

/i - 考慮大寫字符


查看完整回答
反對 回復 2022-08-04
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

我錯過了OP要求中的一些東西:如果用戶名長度超過2個字符,則只能有一個前導字母。因此,我相應地更正了這個答案,我們從根本上得到了與Venkatesh的解決方案2相同的正則表達式。


我以為你只希望沒有重音字符。


使用正則表達式(在此處測試),您將獲得以下匹配/失敗(逐個測試時):/^[a-z]([a-z]+\d*|\d{2,})$/i


? Paul46:  matches

? 4frank:  fails

? mike:    matches

? jus6tin: fails 

? p87:     matches

? k9:      fails

? AL10:    matches


查看完整回答
反對 回復 2022-08-04
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

下面的解決方案可以很好地找到符合以下條件的用戶名 用戶名只能使用字母數字字符。

  1. 用戶名中唯一的數字必須位于末尾??梢杂辛銈€或 2 個。最后還有更多。用戶名不能以數字開頭。

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

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

let username = "JackOfAllTrades";

let userCheck = /^[a-z]+(\d\d+$|[a-z]+\d*$)/i; // Change this line

let result = userCheck.test(username);

console.log(result)

描述:

  1. ^[a-z]+- 匹配 .(+)alphabet([a-z])beginning(^)

  2. \d\d+$- 如果開頭只有一個字母,則匹配結尾 2 或更多(\d 表示一個,\d+ 表示一個或多個)數字。

  3. [a-z]+\d*$- 匹配一個或多個字母表以及末尾的0個或多個數字。

  4. i- 忽略字母大小寫的標志

  5. |- 符號選擇匹配兩個正則表達式


查看完整回答
反對 回復 2022-08-04
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

let userCheck = /^[a-z]([a-z]+|[0-9]\d+)\d*$/i;

以上通過了此問題的所有測試用例


查看完整回答
反對 回復 2022-08-04
  • 5 回答
  • 0 關注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號