因为""里确实不包含a-z
这样改就好了:
/[^a-z]/==>/[^a-z]+/

解决方案 »

  1.   

    if (preg_match('/[^a-z]+/', "")) {
    echo 'false';
    }else echo 'true';
      

  2.   


    if (preg_match('/[^a-z]/', "a")) {
       echo 'false';
    }else echo 'true';
    呢?
    也是true就是说"a"和""里都有a-z?
    不对吧
      

  3.   

    这条语句preg_match('/[^a-z]/', "a")) 本来就是false
    你想让你的输出false 的话就不要这样写了。
    if (!preg_match('/[^a-z]/', "a")) {
       echo 'false';
    }else echo 'true';
    这样肯定是输出false;了。