[请益] 如何将字串中的连续数字加横线后输出?

楼主: Minagi2005 (修毕)   2014-07-02 16:06:31
因系统奇怪的规则,需要将一串字串中若有连续数字(大于10位数,通常为手机号码),
必须将其每四码加一个"-"符号后输出
例如原本字串为:“因有急事找您,我的手机为0910123456,请回电。”
输出后变成:“因有急事找您,我的手机为0910-1234-56,请回电。”
由于本人尚属新手,希望能尽量解释的详细一点...有程式码更好Q_Q
烦请高手解答,谢谢!
作者: terrybob (罪云樵)   2014-07-02 16:16:00
抓取数字:开头09,并且为10码长、10码全为数字!
作者: tkdmaf (皮皮快跑)   2014-07-02 16:32:00
(1)正规表达式 (2)字串长度计算后插入符号。
作者: alog (A肉哥)   2014-07-02 16:33:00
trim(preg_replace('/(\d{4})/', '$1-', $cellphone), '-');不过通常应该是 0911-000-222 这种格式吧
作者: johnny1972 (傻蛋)   2014-07-02 16:48:00
alog的做法会变成5~9个连续数字也被加上-喔
作者: alog (A肉哥)   2014-07-02 16:50:00
应该要先分析好你的资料有哪几种类型 再设计程式不然光几个规则是无法适用全部$is_correct = preg_match('/^09\d{8}$/', $cellphone);
作者: terrybob (罪云樵)   2014-07-02 17:04:00
建议用正规表达式,不过有难度XD
作者: alog (A肉哥)   2014-07-02 17:23:00
请以php manual 为准另外要移除数字以外的字符你可以这样做 /[^\d]/
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-07-02 19:45:00
用十几行写出来就用十几行 硬要用regex可能一会之后自己都看不懂当初为什么这样写
作者: alog (A肉哥)   2014-07-02 22:06:00
IN/OUT要正确,至于用什么RegExp or 纯粹 String 处理都其次
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-07-03 00:44:00
对,in => out效果正确,code看得懂,就是最好的
作者: up9cloud (九天)   2014-07-03 01:32:00
只取代数字,建议regex。怕以后看无,加些注解就好@@
作者: hwChang (聪明是天赋 善良是选择)   2014-07-05 16:32:00
加油加油,我最近刚好也在学习正规式。

Links booklink

Contact Us: admin [ a t ] ucptt.com