王明 =》 王*,
王小明=》 王*明
现在需要匹配姓名,把第二个字隐藏掉,代码该怎么写
测试了下中英文都可以
<?php
$name = '王小';
$length = mb_strlen($name,'UTF8');
if($length<=0) echo '';
$first = mb_substr($name,0,1,'utf-8') . '*';
$last = '';
if($length >= 3) {
$last = mb_substr($name, -1, 1,'utf-8');
}
var_dump($first . $last);die;
<?php
$str='王明';
if(mb_strlen($str,'UTF8')==2){
$result_str=mb_substr($str,0,1,'UTF8').'*';
}elseif(mb_strlen($str,'UTF8')==3){
$tmp_str=mb_substr($str,0,1,'UTF8').'*';
$result_str=$tmp_str.mb_substr($str,-1,1,'UTF8');
}
var_dump($result_str);
办法有很多啊, 如果全部都是汉字的话, 可以用这种啊
mb_regex_encoding("utf-8");
echo mb_ereg_replace_callback("^(\w{1})(\w{1})(\w*)$",function($matches){return $matches[1]."*".$matches[3];},"王小明");
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答984 阅读✓ 已解决
2 回答1.1k 阅读
1 回答929 阅读
1 回答887 阅读
1 回答882 阅读