中文、英文、數字的判斷在項目中也會經常用到,可以參考一下,或許會有幫助。

$str='asb天水市12';

if (preg_match("/^[\x7f-\xff]+$/", $str)){
echo '全部是中文字';
}else {
echo '不全是中文字';
}
/**
PHP自帶的判斷是否是中文
eregi('[^\x00-\x7F]', $str ) //中文
eregi('[0-9]', $str) //數字
eregi('[a-zA-Z]', $str)//英文
*/
if (eregi('[^\x00-\x7F]', $str) || eregi('[0-9]', $str) || eregi('[a-zA-Z]', $str)){
echo '你輸入的為中英文數字的併合體哦!'.'<br>';
echo "長度:".strlen($str);
}
/ **

下面這兩個方法是用來判斷是否是英文中文字和數字組成的字符串,或者全部是中文組成的字符串,用的變量$str還是本文開頭的變量。

*/

if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) {
echo '全部是中文字';
} else {
echo '不全是中文字';
}

if (preg_match("/([\x81-\xfe][\x40-\xfe])/", $str, $match)) {
echo '含有中文字';
} else {
echo '不含有中文字';
}

/**

此為js方法,判斷了一個中文字佔兩個字節,一個中文或數字佔一個,使用編碼為UTF-8。

*/

<script>

var leng = {};

var value = document.forms[0].name.value;
jmz.GetLength = function(str) {
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength +=2;
}
return realLength;
};

alert(leng.GetLength(value))

</script>

function checkStr($str){
$output='';
$a=ereg('['.chr(0xa1).'-'.chr(0xff).']', $str);
$b=ereg('[0-9]', $str);
$c=ereg('[a-zA-Z]', $str);
if($a && $b && $c){ $output='中文字數字英文的混合字符串';}
elseif($a && $b && !$c){ $output='中文字數字的混合字符串';}
elseif($a && !$b && $c){ $output='中文字英文的混合字符串';}
elseif(!$a && $b && $c){ $output='數字英文的混合字符串';}
elseif($a && !$b && !$c){ $output='純中文字';}
elseif(!$a && $b && !$c){ $output='純數字';}
elseif(!$a && !$b && $c){ $output='純英文';}
return $output;
}

echo checkStr('5愛u');

Creative Commons License
創用 CC 授權條款
Tags: ,
黑色地窖 » PHP | 評論(0) | 引用(0) | 閱讀(712)