Asp.net 如何使用正则表达式处理密码验证的拉丁字符?

Asp.net 如何使用正则表达式处理密码验证的拉丁字符?,asp.net,regex,Asp.net,Regex,我正在编写密码验证代码,该代码应该包含一个大写字母、一个小写字母、一个数字和一个特定字符。我为此编写了正则表达式。我不知道如何处理像“ÏÐñ࢙ࢤßá–”这样的拉丁字符。这些拉丁字符将以大写、小写或特殊字符计数 public const string NAME_REGEX = @"^[\da-zA-Z-+_*&=^%$#@(){}~!]{8,12}$"; 你有两个选择 1.您可以将拉丁字符视为英语字符,并将小写字母定义为[a-zÿ],将大写字母定义为[a-zÀ-223;]。在这种情况

我正在编写密码验证代码,该代码应该包含一个大写字母、一个小写字母、一个数字和一个特定字符。我为此编写了正则表达式。我不知道如何处理像“ÏÐñ࢙ࢤßá–”这样的拉丁字符。这些拉丁字符将以大写、小写或特殊字符计数

  public const string NAME_REGEX = @"^[\da-zA-Z-+_*&=^%$#@(){}~!]{8,12}$";
你有两个选择

1.您可以将拉丁字符视为英语字符,并将小写字母定义为
[a-zÿ]
,将大写字母定义为
[a-zÀ-223;]
。在这种情况下,正则表达式中会记录英文或拉丁文字符,根据您的密码规则,您的正则表达式可以这样写

^(?=.*[a-zà-ÿ])(?=.*[A-ZÀ-ß])(?=.*\d)(?=.*[!@#$])[a-zà-ÿA-ZÀ-ß\d!@#$]{8,12}$

请注意,我已将密码中允许的字符限制在此字符集
[a-záa-zÀa-zßd!@#$]
中,您可以对其进行增强并允许更多字符,或者只需编写
即可允许任何操作

2.在第二种情况下,您可能不希望在密码强制条件中考虑拉丁字符,因此可以在前瞻表达式中从字符集中取出这些拉丁字符。你的正则表达式变成了这个

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$])[a-zà-ÿA-ZÀ-ß\d!@#$]{8,12}$

如您所见,您仍然可以在密码中允许的字符中允许使用拉丁字符,但它不再参与密码中必须至少存在一个小写/大写字符才能生效的情况


让我知道这是否有助于进一步查询。

In.net\w将允许“字母”类别中的所有unicode字符。