输入项必须是数字,字母,特殊字符($,%,@,&,#,*)的组合,我写的是/^[A-Za-z0-9]+[\$%@&#\*]+$/
好像还有点问题,比如22222222*,就可以通过,应该要改哪个地方?

解决方案 »

  1.   


    Pattern p1 = Pattern.compile("[0-9]+");
    Pattern p2 = Pattern.compile("[A-Za-z]+");
    Pattern p3 = Pattern.compile("[\\$%@&#\\*]+");String testString[] = new String[] { 
    "2222*", "@@@@b", "222A@" 
    };for (int i = 0; i < testString.length; ++i) {
    System.out.print("Check \"" + testString[i] + "\"");

    if (p1.matcher(testString[i]).find()
    && p2.matcher(testString[i]).find()
    && p3.matcher(testString[i]).find())
    {
    System.out.println(" is valid");
    }
    else {
    System.out.println(" is error");
    }
    }
      

  2.   

    <script>
    function check(str)
    {
    var reg0 = /[0-9]/;
    var reg1 = /[a-z]/i;
    var reg2 = /[$%@&#*]/;
    if(str.search(reg0) == -1)
    {
    alert("缺少数字!");
    }else if(str.search(reg1) == -1)
    {
    alert("缺少字母!");
    }else if(str.search(reg2) == -1)
    {
    alert("缺少特殊字符!");
    }else
    {
    alert("字符正确匹配!");
    }
    }
    check('234#@df');
    </script>
      

  3.   

    /^[A-Za-z]+[0-9]+[\$%@&#\*]+$/