相关疑难解决方法(0)

密码必须至少有一个非alpha字符

我需要一个正则表达式的密码.密码必须至少包含8个字符.至少一个字符必须是数字或特殊字符(不是字母).

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 8)]
[RegularExpression(@"(?=.*\W)?(?=.*\d)", ErrorMessage = "Error message")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

我有一个长度验证,但我需要一个正则表达式的帮助,检查密码是否包含至少一个数字或特殊字符.

有效密码的示例:

testtest85*
testtes*
testtes1
test1234*+
Run Code Online (Sandbox Code Playgroud)

无效密码的示例:

testtest
testabc
Run Code Online (Sandbox Code Playgroud)

c# regex validation asp.net-mvc

7
推荐指数
1
解决办法
11万
查看次数

正则表达式匹配字符串中任意顺序的至少2位数字,2个字母

我正在尝试创建一个模式匹配的正则表达式(用于密码),其中字符串必须在8到30个字符之间,必须至少有2个数字,至少2个字母(不区分大小写),至少1个特殊字符,以及空间不足.

我有空格和特殊字符匹配工作,但我被抛出2位数字和2个字母,因为它们不需要连续.

即它应匹配a1b2c$ab12$1aab2c$.

这些字母有这样的东西吗?

(?=.*[a-zA-Z].*[a-zA-Z])  // Not sure.
Run Code Online (Sandbox Code Playgroud)

下面这个字符串有效,但只有当2个字母是连续的并且2个数字是连续的时...如果字母,数字,特殊字符交织在一起则失败.

(?=^.{8,30}$)((?=.*\\d)(?=.*[A-Za-z]{2})(?=.*[0-9]{2})(?=.*[!@#$%^&*?]{1})(?!.*[\\s]))^.* 
Run Code Online (Sandbox Code Playgroud)

java regex

6
推荐指数
2
解决办法
3万
查看次数

如何对安全密码执行验证.char []上的正则表达式?

这个问题是对这个问题的跟进:

为什么char []比字符串更适合密码?

这个问题非常适合理解为什么使用char []而不是String; 但是,它没有解释如何以安全的方式对char []执行密码验证.这就是我想知道的.

简而言之,我需要检查密码是否符合以下要求:

  • 包含至少一个大写字母
  • 包含至少一个小写字母
  • 至少包含一位数字
  • 至少包含一个符号
  • 至少是n个字符,但不超过m

现在我明白了如何使用正则表达式来执行验证......这些答案显示了如何做到这一点:

据我所知,正则表达式检查涉及使用字符串.使用它们似乎不安全,因为字符串是不可变的,因此在使用它们后不能立即清除它们.另一方面,char []可以被清除.

那么,如何对存储在char []中的密码执行验证,而不是字符串?

我可以遍历每个角色,但是我必须创建我想要测试的每个集合.理想情况下,能够利用正则表达式会很有用.

在Java中,我可以通过以下方法进行正则表达式检查.

String.matches(String regex)
Run Code Online (Sandbox Code Playgroud)

要么

Pattern pattern = Pattern.compile(String regex);
pattern.matcher(CharSequence testString).matches();
Run Code Online (Sandbox Code Playgroud)

如您所见,这两种方法都不支持直接使用char [].

java regex arrays passwords validation

6
推荐指数
1
解决办法
1767
查看次数

使用regex c#验证密码

这一定很简单,我希望它以同样的方式工作,但它并没有帮助我.

using System;
using System.Text.RegularExpressions;
Run Code Online (Sandbox Code Playgroud)

我需要在password validation regular expression某些条件下 -

1)必须至少包含一个数字

2)一个大写字母

3)长8个字符.

public class Program
{
     public static bool IsValidPassword(string plainText) {
            Regex regex = new Regex(@"^(.{0,7}|[^0-9]*|[^A-Z])$");
            Match match = regex.Match(plainText);
            return match.Success;
}
    public static void Main()
    {
        Console.WriteLine(IsValidPassword("shing"));    //logs 'True' always
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经采取了正则表达式从这个源- 密码必须为8个字符,包括1个大写字母,特殊字符,字母数字字符

问题是它总是返回'True'并且我发送给方法的字符串无效.

如果我正在使用正则表达式做错了,请帮助我.

请在这里玩 - https://dotnetfiddle.net/lEFYGJ

c# regex

6
推荐指数
3
解决办法
2万
查看次数

1 个大写 1 个特殊字符和 1 个小写的正则表达式

我需要 1 个大写 1 个特殊字符和 1 个小写字母的正则表达式注意需要允许所有特殊字符,并且长度应大于 8 个字符。

我试过 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/这个,但这限制了一些特殊字符。

regex

5
推荐指数
1
解决办法
1万
查看次数

如何验证具有上,下和特殊字符的密码?

我需要验证用户需要设置最小值,1个上限,1个下限和1个特殊字符...我只是验证用户需要最少6个字母或更多...

try
{
    string actualPass = this.txtactualPass.Text;
    string newPass = this.txtnewPass.Text;
    string reEnterPass = this.txtReEnterPass.Text;

    if (actualPass == this.Session["password"].ToString())
    {
        if (newPass.Length >= 6)
        {
Run Code Online (Sandbox Code Playgroud)

c# asp.net

-1
推荐指数
1
解决办法
5047
查看次数

标签 统计

regex ×5

c# ×3

java ×2

validation ×2

arrays ×1

asp.net ×1

asp.net-mvc ×1

passwords ×1