簡體   English   中英

至少包含1個字符的字母數字

[英]alphanumeric with at least 1 character

好的,所以我終於確定我需要以下物品:

因此,正則表達式必須執行:

  1. 字母數字
  2. 至少1個字母
  3. 必須包含4到8個字符 (字母/數字)。

即字母數字字符串,必須至少包含1個字母,並且長度在4到8之間。 (因此,不能只包含數字或字母)。

可以在一個正則表達式中完成所有這些工作嗎?

我假設您的意思是字母數字,至少一個字母 ,且長度為4至8個字符。

嘗試這個:

(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}
  • (?= -我們正在使用lookahead ,因此我們可以檢查某些內容而不會影響其余的比賽

  • .*[a-zA-Z] -匹配后跟字母的任何字符,即檢查我們是否至少有一個字母

  • [a-zA-Z0-9]{4,8} -這將匹配一個字母或數字4至8次。

但是,您說的目的是“不能僅是所有數字或僅是所有字母”,但要求1、2和3不能完成此操作,因為它可以全部為字母,並且滿足所有三個要求。 您可能需要這樣做,並額外提前確認至少一位數字:

(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{4,8}

使用a-zA-Z並不十分國際友好,因此如果可以使用正則表達式,則最好使用轉義代碼表示“字母”,這樣可能會更好。

另外,我希望這與可接受的密碼不匹配,因為4個字符可能不夠長。

2號和3號似乎矛盾。 以下將匹配4到8之間的字母數字:

/[0-9a-zA-Z]{4,8}/
?Regex.IsMatch("sdf", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false
?Regex.IsMatch("sdfd", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
?Regex.IsMatch("1234", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false

警告**。*。+

// At least one letter does not match with .*
?Regex.IsMatch("1111", "(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}")
false

?Regex.IsMatch("1aaa", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
[a-zA-Z0-9]{4,8}

第一部分指定字母數字,第二部分指定4至8個字符。

試試:[a-zA-Z0-9] {4,8}

暫無
暫無

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

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