PHP判断中英文混排长度
实际应用中,1个汉字的长度和2个英文的长度基本差不多:
//20171113 修改 第一种方法有缺陷,当同时存在汉字和数字时,1个汉字不能转化为2个数字 --已经弃用,参考
/**
* @param $Name string 输入内容
* @param $News string 返回内容
* @param int $Min 最小值 默认4
* @param int $Max 最大值 默认14
* @默认汉字算2个字符,英文算1个字符
*/
function Lengths($Name,$Hint,$Min=4,$Max=14){
if (mb_strlen($Name,'gb2312') < $Min || mb_strlen($Name,'gb2312') > $Max) {
$this->error($Hint);
}
}
//将1个汉字替换为两个空格字符,进行字符长度计算
/**
* @param $Name string 输入内容
* @param $News string 返回内容
* @param int $Min 最小值 默认4
* @param int $Max 最大值 默认14
* @默认汉字算2个字符,英文算1个字符
* @saber_H
*/
function Lengths($Name,$Hint,$Min=4,$Max=14){
$Name = preg_replace("/([\x{4e00}-\x{9fa5}])/iu",' ',$Name);
if (mb_strlen($Name,'gb2312') < $Min || mb_strlen($Name,'gb2312') > $Max) {
$this->error($Hint);
}
}