首先最后是这样子的

手机号: 
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
身份证号:
return idcard.replace(/(\w{4})\w{10}(\w{4})/, '$1****$2')

比如说,

/(\d{3})\d{4}(\d{4})/
就是说因为手机号有11位,所以保持前3位后4位不动,中间4为替换为*

然后发现身份证号也按这个来写就被坑了,因为/d匹配的是数字,/w才是多匹配,下面放一些常用用法。
PS:下面看下正则表达式 \w \s \d \b

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

\w能不能匹配汉字要视你的操作系统和你的应用环境而定

 

 posted on 2019-01-13 21:32  WU大雄  阅读(409)  评论(0编辑  收藏  举报