if(/[^\u4e00-\u9fa5]/.test("中文a"))alert("不全是中文");
else alert("都是中文");

解决方案 »

  1.   

    vivanboy(被迫早起的鸟儿)(★★★★★) 有这样一个回答:
    <?
    function checkGBK($str,$lenStart,$lenEnd){//检查是否符合规定长度的gbk汉字
    $strLen=strlen($str)/2;
    if($strLen>$lenEnd||$strLen<$lenStart) return false;
    for($n=0;$n<strlen($str);$n+=2){
    $fs=ord($str[$n]);
    $ss=ord($str[$n+1]);
    if(!(($fs>175&&$fs<248&&$ss>160&&$ss<255)||($fs>128&&$fs<161&&$ss>63&&$ss<255)||($fs>169&&$fs<255&&$ss>63&&$ss<161)))  return false;
    }
    return true;
    }function checkGB2312($str,$lenStart,$lenEnd){//检查是否符合规定长度的gb2312汉字
    $strLen=strlen($str)/2;
    if($strLen>$lenEnd||$strLen<$lenStart) return false;
    for($n=0;$n<strlen($str);$n+=2){
    $fs=ord($str[$n]);
    $ss=ord($str[$n+1]);
    if(!($fs>175&&$fs<248&&$ss>160&&$ss<255))  return false;
    }
    return true;
    }//由于gbk向后兼容gb2312,扩充了一些汉字,并包括所有繁体形式的简体字,而且现在浏览器也默认是gbk,所有建议使用第一个函数checkGBK()来验证
    //例:
    if(checkGBK("中国人",2,5)) echo "合法";
    else echo "不合法";
    ?>