php正则表达式 替换

有一段文本,比如:1254879632,2545698754,1203654787我要提取里面的位数为10位的数字。如下:1、12548796322、2545698754... 有一段文本,比如:1254879632,2545698754,1203654787
我要提取里面的位数为 10位的数字。
如下:
1、1254879632
2、2545698754
3、1203654787
现在我想让中间的四位数字用星号(*)代替
结果如下:
1、12****9632
2、25****8754
3、12****4787
假如字符串变量为 $str 那么这样的正则替换如何写,或者不用正则有更高效的方法也可以。
展开
 我来答
百度网友a40a386
2012-07-26 · TA获得超过1407个赞
知道答主
回答量:25
采纳率:0%
帮助的人:14.5万
展开全部
$string = '1254879632,2545698754,1203654787';
echo preg_replace("/(\d{2})\d{4}(\d{4})/", '\1****\2', $string);
飞扬舞侠
2012-07-24 · TA获得超过271个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:218万
展开全部
先正则匹配,然后遍历数组
$v=substr_replace($v,'****',2,4);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-24
展开全部
var $reg=/\d{10}/g;

var $regReplace=/\d{2}\*{4}\d{4}/g;

str_replace($reg,$regReplace,$str)
追问
一个含有十几万个成员(全是10位数)的数组,中间四位数全改成

12****9632

有什么好办法?最好考虑到效率
追答
给你个思路:
你可以先把 这个数据 提取成一组字符串,替换完后在 分割成数组 赋值给原来数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangjianlai52
2012-07-24 · TA获得超过184个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:175万
展开全部
$str=substr($str,0,2)."****".substr($str,5,4);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渠睿9r
2012-07-24 · TA获得超过799个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:182万
展开全部
我已经测试过了,没问题!核心就是正则表达式: (?=\d{2})\d{4}(?=\d{4}$)
希望可以帮到你
<script>
changeStr();
function changeStr()
{
var str = "1254879632";
var reg = /(?=\d{2})\d{4}(?=\d{4}$)/;
var str2 = str.replace(reg,"****");
alert(str+"--"+str2);
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0b7a1d60e67
2012-07-30 · 超过10用户采纳过TA的回答
知道答主
回答量:203
采纳率:0%
帮助的人:99.9万
展开全部
1.字符串添加了起始位 , 和 最后大于10位的数字 120365478777;
$str = ',1254879632,2545698754,1203654787,120365478777';

2. 提取里面的位数为 10位的数字
$strLen10 = preg_match_all('/,(\d{10})(?!\d+)/',$str,$match);

3.让中间的四位数字用星号(*)代替
foreach ($match[1] as $k => $value){
preg_match('/\d{2}(.*)\d{4}/', $value,$matchMiddle);
var_dump($matchMiddle[1]);
$match[1][$k] = preg_replace("/$matchMiddle[1]/",'****',$value);
}
var_dump($match[1]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式