1、JS中的/^[\u4E00-\u9FA5\w@\.]+$/在php中该怎么表示呢?汉字、a-z的英文字母、0-9的数字、@、点或下划线组成的正则表达式。
 在php中模式应该没有变化。/[\0xB0-\0xFE|a-z|0-9|\@\.\_/ 
2、在PHP中,汉字该范围该怎么表示?
 汉字范围在\0xB0-\0xFE之间。
3、在PHP中,双字节字符范围该怎么表示?
 不懂什么是双字节汉字。是说GB2312,还是GBK?还是GB18030一般汉字都是双字节的啊。

解决方案 »

  1.   

    在PHP中,双字节字符范围该怎么表示?--------------------------[^\x00-\xff]
    在PHP中,汉字该范围该怎么表示--------------------------
    [\u4E00-\u9FA5]
      

  2.   

    混了,
    1、上面说:/[\0xB0-\0xFE|a-z|0-9|\@\.\_/ 
    2、汉字范围在PHP中也是[\u4E00-\u9FA5],那么应该是:/[\u4E00-\u9FA5|a-z|0-9|\@\.\_/ 
      

  3.   

    我作了测试:
    $str = "中文";
    $parr1 = "\u4E00-\u9FA5";
    $parr2 = "\x00-\xff";
    $parr3 = "\0xB0-\0xFE";
    $parr4 = "\x80-\xff";
    $parr5 = chr(0xa1) . "-" . chr(0xff);if ( preg_match( "/^[$parr5]*$/", $str) ){
       echo "<font color=bule>这是一个中文字符串</font>\n";
    } else{
       echo "<font color=red>这不是一个中文字符串</font>\n";
    }
    1、2、3都是错误的,4、5正确,但我希望对标点符号能另外判断,也就是这里的中文是指纯汉字,不包括中文标点符号等。