要求对一字符串的复杂度 进行检查
密码符合以下长度/复杂性要求才可以接受
一, 密码最少长度为 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 其他字符(“特殊字符”、标点、符号 如:{ } [] , < > @ $ % & ^ ( ) _ + =一 二 条符合其中一条即可如何判断改字符串是否符合呢??
有没有高手 好人帮帮忙?

解决方案 »

  1.   

    function checkPassword(pwd)
    {
       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;
     }
      

  2.   

    http://www.cnblogs.com/dingxuedong/
      

  3.   

    "^(?:(?=.*[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,}"
      

  4.   

    using System;
    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
    */
      

  5.   


    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
       //不符合
      

  6.   

    顶....走了csdn 这么久.热心的人还真是多哦