繁体   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