求一个密码正则要来验证用户输入的密码是否合法的。要求我想不能输入中文和空格就可以了,密码长度是6-15个字符。function is_password($str){
  return preg_match("[\w\d]",$str);
}可惜return preg_match("[\w\d]",$str);这个正则我写了n多都不正确。。痛哭啊。大家帮忙好吗

解决方案 »

  1.   

    由于中文的ASCII码是有一定的范围的。所以你可以用下面的正则表达式来表示中文。/^[chr(0xa1)-chr(0xff)]+$/下面是一个使用的例子:$str = "我爱PHP";
    if  (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) {
        echo "中文字符串";
    } else {
        echo "非中文字串";
    }但要注意编码的问题,如果中文是utf8编码,你需要加上模式修正符 u
      

  2.   

    能不能写个完整的正则啊我问了个可以的,
    function is_safe($str){
      return !preg_match('/[\x80-\xff]|[\s]/', $str);  }但是没有限制6-15个字符啊