一段话中手机号中间四位做特殊处理
最近接到了编辑这样的需求——『手机号做特殊处理,中间四位替换为*』并且给出了常见的联系方式:
Ø 正常联系方式
l 网上颇有知名度的当地导游王家乐(15274422092 ),QQ:(1453657757)
l 陈导(电话15974427155 QQ609137454 )
l 星期八客栈(电话:18674440396,订房qq:1291645848)
l 侯师傅,联系方式15547038013QQ546826424)
Ø 添加字符联系方式
l 郑师傅1-3-6-7-7-7-3-9-0-7-9,封师傅1-3-7-6-8-7-1-9-0-3-7
l 小伍吧(QQ852----713-------352)
l 小黎自助旅游qq422-678-881
l 陈真电话;⒈⒌⒉⒎⒋⒋⒐⒎⒊⒋二,QQ;2234 00124
l 推荐张家界清风自由行旅游网客服小朱(qq:2569-656860)
l 王师傅(联系电话:137-2203-4722)
l 出售188 6613 0199黑车交易市场
Ø 大写联系方式
l 郑师傅(壹叁陆柒柒柒叁玖零柒玖),封师傅(壹叁柒陆捌柒壹玖零叁柒)
l 电话:一五八六五四八三七一二
l 联系一三六八零零六七二三八
突然感叹最近的代码是不是太智能了……
本来是打算后端直接处理的,但是因为考虑到之后可能会出现需要用到用户联系方式的情况(比如我们可以倒买倒卖用户的联系方式嘛哈哈哈哈 当然是开玩笑),因此在前端展现的时候对电话号码进行处理——于是任务落在了我头上……
于是我就开始思考:
那么问题来了,因为所有数据都是通过同步数据打给前端的,所以
- 不能用js写,因为JS是在页面加载完之后才执行的,那个时候游记都已经展现了,还改个鬼啊……
- 不能用smarty语法写,因为不会……嘿嘿
所以就只能写php了(php我也不会啊,但是可以抄啊)我一个前端居然开始写php了……其实也就是写了个方法,在smarty中调用就好了
首先是判断是否有多个连续的大写号码
一开始的正则是这么写的:$reg = "/[一二三四五六七八九零壹贰弎肆伍陆柒捌玖〇⒈⒉⒊⒋⒌⒎⒐]{9,11}/" 结果发现匹配出来是乱码 然后开始考虑是字符编码的问题
中途踩了很多坑,基本可以参考这篇文章http://my.oschina.net/BearCatYN/blog/413833
一开始就单纯写的unicode编码,$reg = “/[\u58f9\u8d30\u5f0e\u8086\u4f0d\u9646\u67d2\u634c\u7396\u3007]{9,11}/"这样的,JS里面就是这样的嘛,结果发现根本没有匹配到
原来PHP正则表达式中不支持下列 Perl 转义序列:L, l, N, P, p, U, u, or X ,在 UTF-8 模式下,允许用“\x{...}”,花括号中的内容是表示十六进制数字的字符串,于是改成$reg = "/\x{58f9}\x{8d30}\x{53c1}\x{8086}\x{4f0d}\x{9646}\x{67d2}\x{634c}\x{7396}\x{3007}]{9,11}/“,还是不行……
于是加了一个修正符『u』,表示按unicode(utf-8)匹配(主要针对多字节比如汉字),$reg = "/[\x{58f9}\x{8d30}\x{53c1}\x{8086}\x{4f0d}\x{9646}\x{67d2}\x{634c}\x{7396}\x{3007}]{9,11}/u”,然后就好啦~好开心呢~
(对了,『三』的大写是『叁』不是『弎』……为什么我会弄错……)
在此附上找到的一些unicode,各种unicode 有的字符不知道怎么打出来的 待补
1. 这是『一二三四五六七八九零』的unicode
\x{4e00}\x{4e8c}\x{4e09}\x{56db}\x{4e94}\x{516d}\x{4e03}\x{516b}\x{4e5d}\x{96f6}
2. 这是『壹贰叁肆伍陆柒捌玖〇』的unicode
\x{58f9}\x{8d30}\x{53c1}\x{8086}\x{4f0d}\x{9646}\x{67d2}\x{634c}\x{7396}\x{3007}
3. 这是『⒈⒉⒊⒋⒌⒍⒎⒏⒐』的unicode
\x{2488}-\x{2490}
4. 这是『①②③④⑤⑥⑦⑧⑨⓪』的unicode
\x{2460}-\x{2468}\x{24ea}
5. 这是『❶❷❸❹❺❻❼❽❾』的unicode
\x{2776}-\x{277e}
6. 这是『⑴⑵⑶⑷⑸⑹⑺⑻⑼』的unicode
\x{2474}-\x{247c}
7. 这是『㈠㈡㈣㈤㈥㈦㈧㈨』的unicode
\x{3220}-\x{3228}
8. 这是『㊀㊁㊂㊃㊄㊅㊆㊇㊈』的unicode
\x{3280}-\x{3288}
感觉自己已经瞎了……
之后做一个替换的映射表,将匹配到的字符串进行替换,完成!
好啦,我要继续写代码了~
==========================================================================================================
20160924更新
以上主要涉及到两个函数preg_match_all和preg_match,这两个函数的区别可以参考http://blog.csdn.net/i1988/article/details/5830142这个文章,主要是匹配次数的问题,然后还要考虑好最后自己需要的是$match[0] 还是$match[1]的结果。
然后现在又遇到这样的问题,就是……链接也被干掉了,比如图片(视频、链接什么的不好截图我就不发了,反正结果你们也能猜到),一查代码……
唉,现在就要做规避了……
细节太伤了,原谅我不想说……直接简单粗暴地上图吧,反正你们关心的也是这个(好像还是不能完全规避,唉 走一步看一步吧)
好了 我又要去写代码啦……(我们今天上班你们知道吗……)
一段话中手机号中间四位做特殊处理相关推荐
- python判断一个或者多个字符串,是否出现在一段话中
python判断一个或者多个字符串,是否出现在一段话中 要判断一段话中是否有几个字符串,只要一个出现就为True,刚开始想用map函数,后来发现也挺麻烦. 查了一些资料,发现用 any比较好 比如 p ...
- Java——检索一段话中出现次数最多的英文单词
今日看到一个题目,要求在给出的一段话中检索出出现频率最高的单词.现在此分享. 题目: 在下面这段话中,检索出出现次数最多的英文单词: Look to the skies above London an ...
- python 在某段文章中确定一段话中每个词出现的次数,并排序
#-*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding("gbk") import numpy as ...
- python 删除一段话中某一个字符串开始之后的所有字符串
python要删除一段字符串之后的所有字符串,可以使用partition函数. 比如: p_example = "尊敬的领导,你们好.在开发的s公司历时两年直到工程完毕至今,扔拖欠我们18万 ...
- c++设置一个二维字符组初值_C语言 | 统计一段话中的字符
"要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...
- 设计一个脚本,根据关键字提取整段话中关键字所在的句子
string[] arrstr ={"微风浅浅,花开淡淡","静坐窗前,给自己沏一壶茶","茶香袅袅,雀舌的味道从唇边滑过,甘而不涩,余味回旋.&qu ...
- html 对p中一段话指定样式,HTML5学习笔记(二)
一.常用标签 1.< p> 标签:段落标签,用来显示一段文本 段落文本 2.< h> 标签:从 h1-h6字体越来越大.标题标签. 一级标题 二级标题 三级标题 四级标题 五级 ...
- 用shell打印下面这句话中字母数小于6的单词
Bash also interprets a number of multi-character options 答案: #! /bin/bash for i in bash also interpr ...
- 类的包访问权限:《Java编程思想》中一段话的困惑
类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...
最新文章
- JAVA中NEXTLINE()与NEXT()的区别
- java实现两个整数相除保留一位小数
- Python地信专题 |基于geopandas的空间数据分析-深入浅出分层设色
- 【大盛】全网首发HTC One/M7 最新本地化TrickDroid9.0/固件升级/永久root/高级,快速设置/稳定,流畅经典ROM...
- QT Creator应用程序开发——01简单按钮显示
- scala学习手记28 - Execute Around模式
- html打开显示脚本错误,IE浏览器显示脚本错误怎么办 IE浏览器脚本错误解决方法图文教程...
- Android使用谷歌插件,详解谷歌官方教程 Android插件ADT 9.0.0
- 基于JWT(Json Web Token)的授权方式
- 详解机器视觉照明重点内容
- 【高斯消元】BZOJ3503 [Cqoi2014]和谐矩阵
- Hibernate事务与并发问题处理(乐观锁与悲观锁)
- T60 Fan Error 解决办法.转自ZOL产品论坛-作者zxymb
- 环绕声混响效果器-Acon Digital Verberate Immersive 2.2.1 WiN-MAC
- java 图片 pdf_Java 添加图片到PDF
- 转载四代重歼的一片博文 - 漏斗子:“三大战役”完成 人民币国际化就登场
- Java基本sql_SQL基本语句
- 画洗碗机器人的思维导图_赞!三年级小学生画出这样的思维导图
- 鹿晗关晓彤公布恋情阿里云服务器救场 这位微博程序员新婚还加班
- 【笔记】C++之SLT的常用容器