正则表达式问题

小豪 2011-12-20 07:11:00
中英文截取字符串的问题,应该是正则表达式的问题!!大家帮帮忙

function cutStr( $str, $number){
$str = strip_tags($str);
if(strlen($str) <= $number){
return $str;
}
else{
if(preg_match('/[a-zA-Z][\x7f-\xff]*/i', $str))
{
//当都有中文英文的情况下截取
return mb_substr($str,0,$number+2,'utf-8').'...';
}
if(preg_match('/[a-zA-Z]*/i', $str))
{
//当都为英文情况下截取
return mb_substr($str,0,$number+4,'utf-8').'...';
}
if(preg_match('/[\x7f-\xff]*/i', $str))
{
//当都为中文情况下截取
return mb_substr($str,0,$number,'utf-8').'...';
}
}
}
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小豪 2011-12-20
  • 打赏
  • 举报
回复
!!!!!!

//$str字符串
//$number为最大长度
function cutStrTitle($str, $number){
$str = strip_tags($str);
$en=preg_match('/^[a-zA-Z]/', $str);//匹配英文字母
$cn=preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u",$str,$arrc);//匹配汉字,统计个数,返回给$arrc
if(mb_strlen($str,'UTF8')<= $number){//'UTF8'跟据字符串的格式调整
return $str;
}
else{
if($en)
{
if($cn){
//中英文混合情况下
return mb_substr($str,0,$number+2,'utf-8').'...';
}
else{
//全为英文情况下
return mb_substr($str,0,$number+4,'utf-8').'...';
}
}
else {
//全为中文情况下
return mb_substr($str,0,$number,'utf-8').'...';
}

}
}
小豪 2011-12-20
  • 打赏
  • 举报
回复
来个人帮帮忙吧,主要是如何利用正则表达式判断字符串是否全为英文,是否全为中文

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧