我想进行密码验证,其中用户的名字和姓氏不应该是密码的一部分。
例如 mary maverick 是用户名,并假设用户输入的密码如Test123%mave
或Test123%rick
或Test123%ryma
,在这种情况下验证应该在C#中失败代码。
任何人都可以帮助我或指导我如何写正则表达式?
答案 0 :(得分:0)
我认为使用简单的算法更容易实现你的目标,而不是正则表达式因为你没有寻找预定义的模式,但你只需要知道密码中的字符是否在与用户名中存储的顺序相同。
要实现这一目标,您可以:
c
中1
中的每个字符,请在较长的字符串中搜索相同的字符。c
后面的字符是否也跟随较长字符串中的其他字符。如果是,请移动到后面的字符(继续直到匹配4个连续字符),如果没有,则将c
更改为后面的字符(在较短的字符串中)。答案 1 :(得分:0)
此代码根据您的方案运行:
string username = "mary maverick";
string password = "Test123%mave";
username = username.Replace(" ", "");
for (int i = 0; i < password.Length; i++)
{
if (i + 4 <= password.Length)
{
string temp = password.Substring(i, 4);
if (username.Contains(temp))
{
Console.WriteLine("Faild!");
return;
}
}
}
Console.WriteLine("Accepted!");
您可以将password
替换为您想要设置为密码的任何内容。