PHP判断字符串是纯英文、纯汉字或汉英混合

纯英文,代码如下:

  1. if(preg_match("/^[a-z]*$/i", "fdsFDfd"))
  2. {
  3. echo "全字母
  4. ";
  5. }

纯汉字,代码如下:

  1. var str = "php编程";
  2. if (/^[u4e00-u9fa5]+$/.test(str)) {
  3. alert("该字符串全部是中文");
  4. }
  5. else{
  6. alert("该字符串不全部是中文");
  7. } php中,是用x表示十六进制数据的。于是,变换成如下的代码:
  8. $str = "php编程";
  9. if (preg_match("/^[x4e00-x9fa5]+$/",$str)) {
  10. print("该字符串全部是中文");
  11. } else {
  12. print("该字符串不全部是中文");
  13. }

汉英混合

用户名:包括英文小写、汉字、数字、下划线,不能全部是数字,下划线不能在末尾,代码如下:

  1. /^[a-z0-9_u4e00-u9fa5]+[^_]$/g utf-8下
  2. preg_match("/^[a-z0-9_x80-xff]+[^_]$/g",$a);gbk下:
  3. preg_match("/^[a-z0-9_".chr(0xa1)."-".chr(0xff)."]+[^_]$/",$a)

utf-8编码,代码如下:

  1. <?php
  2. /**
  3. * PHP判断字符串纯汉字 OR 纯英文 OR 汉英混合
  4. * 琼台博客
  5. */
  6. echo '<meta charset="utf-8" />';
  7. function utf8_str($str){
  8. $mb = mb_strlen($str,'utf-8');
  9. $st = strlen($str);
  10. if($st==$mb)
  11. return '纯英文';
  12. if($st%$mb==0 && $st%3==0)
  13. return '纯汉字';
  14. return '汉英混合';
  15. }
  16. $str = '琼台博客';
  17. echo '字符串:<span >'.$str.'</span>,是<span >'.utf8_str($str).'</span>';
  18. ?>

gbk编码,代码如下:

  1. function gbk_str($str){
  2. $mb = mb_strlen($str,'gbk');
  3. $st = strlen($str);
  4. if($st==$mb)
  5. return '纯英文';
  6. if($st%$mb==0 && $st%2==0)
  7. return '纯汉字';
  8. return '汉英混合';
  9. }

数字中文汉字代码如下:

  1. $username=$_REQUEST['username'];
  2. if(!preg_match("/^[a-z0-9xa1-xff]{3,10}$/",$username))
  3. {
  4. echo"34r345";
  5. exit;
  6. }