要求对一字符串的复杂度 进行检查
密码符合以下长度/复杂性要求才可以接受
一, 密码最少长度为 6位 ,并至少包含3种复杂类别的字符 (如 Abc134 或者 abc12# 符合 如abc123 123<>( 就不符合)
二 密码最少长度为 8位 ,并至少包含2种复杂类别的字符 (如 Abc21334 或者 abcd1234 符合 如12345678 abcdefg就不符合)
三, 密码的复杂类别由拉丁、西里尔或希腊字母组成
复杂类别说明
1 大写字母 如:A B C....Z
2 小写字母 如:a b c....z
3 西文阿拉伯数据 如:0 1 2...9
4 其他字符(“特殊字符”、标点、符号 如:{ } [] , < > @ $ % & ^ ( ) _ + =一 二 条符合其中一条即可如何判断改字符串是否符合呢??
有没有高手 好人帮帮忙?
密码符合以下长度/复杂性要求才可以接受
一, 密码最少长度为 6位 ,并至少包含3种复杂类别的字符 (如 Abc134 或者 abc12# 符合 如abc123 123<>( 就不符合)
二 密码最少长度为 8位 ,并至少包含2种复杂类别的字符 (如 Abc21334 或者 abcd1234 符合 如12345678 abcdefg就不符合)
三, 密码的复杂类别由拉丁、西里尔或希腊字母组成
复杂类别说明
1 大写字母 如:A B C....Z
2 小写字母 如:a b c....z
3 西文阿拉伯数据 如:0 1 2...9
4 其他字符(“特殊字符”、标点、符号 如:{ } [] , < > @ $ % & ^ ( ) _ + =一 二 条符合其中一条即可如何判断改字符串是否符合呢??
有没有高手 好人帮帮忙?
{
var p1= (pwd.search(/[a-zA-Z]/)!=-1) ? 1 : 0;
var p2= (pwd.search(/[0-9]/)!=-1) ? 1 : 0;
var p3= (pwd.search(/[^A-Za-z0-9_]/)!=-1) ? 1 : 0;
}
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string[] array = { "A2wee", "###123", "!!isok!!234", "ijk#A", "QWERtyuiop", "ABCD1234" };
Regex r = new Regex("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}|(?:(?=.*[A-Z])(?=.*[a-z])|(?=.*[A-Z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])|(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[0-9])(?=.*[^A-Za-z0-9])|).{8,}");
foreach (string s in array)
{
Console.WriteLine("{0}: {1}", r.IsMatch(s) ? "Yes" : " No", s);
}
}
}
/* 输出:
No: A2wee
No: ###123
Yes: !!isok!!234
No: ijk#A
Yes: QWERtyuiop
Yes: ABCD1234
*/
Regex reg = new Regex("^((?![{}\[\],<>@$%&^()_+=0-9]+$)(?![{}\[\],<>@$%&^()_+=a-z]+$)(?![{}\[\],<>@$%&^()_+=A-Z]+$)(?![A-Z0-9]+$)(?![A-Za-z]+$)(?![a-z0-9]+$)[{}\[\],<>@$%&^()_+=0-9a-zA-Z]{6}|(?![{}\[\],<>@$%&^()_+=]+$)(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)[{}\[\],<>@$%&^()_+=0-9a-zA-Z]{8})$");
if(reg.IsMatch(yourStr))
//符合
else
//不符合