簡體   English   中英

C#正則表達式,用於至少一個字母和至少一個數字

[英]C# Regex for at least one letter and at least one number

我正在嘗試檢查密碼是否至少包含一個字母和數字。 跟隨似乎沒有用。

密碼可以是“ tester1”或“ 11111111t”等。

不能全是字母或全數字。

有任何想法嗎?

const string pattern = @"/[a-z].*\d|\d.*[a-z]/";
var match = Regex.Match(password, pattern);

解決了:

var rule1 = password.Any(char.IsLetter);
var rule2 = password.Any(char.IsNumber);

這也很好:

const string pattern = @"[a-z].*\d|\d.*[a-z]";

除了使用正則表達式外,我將使用更易於維護的簡單規則。 例如:

var rule1 = str.All(char.IsLetter);
var rule2 = str.All(char.IsNumber);

您可以通過char.IsLowerchar.IsUpper等豐富規則。

這會做到的...

^(?=.*[a-zA-Z])(?=.*[0-9]).+$

我正在使用正向先行 (?=)完成此操作,然后允許使用任何字符. 一次或多次。 這樣,允許用戶輸入特殊字符,標點符號等。

這是一個

((.*\d.*[a-zA-Z].*)|(.*[a-zA-Z].*\d.*))

模式的斜線用於具有正則表達式文字的語言中。 C#沒有。

從模式中刪除斜杠:

const string pattern = @"[a-z].*\d|\d.*[a-z]";

正則表達式,用於至少一個大寫字母,一個小寫字母,一個數字,一個特殊字符和至少8個字符的長度:

^(?=.*[az])(?=.*[AZ])(?=.*[0-9])(?=.*[^a-zA-Z0-9 :])(?=.{8,})

暫無
暫無

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

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