首先最后是这样子的
手机号: 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能不能匹配汉字要视你的操作系统和你的应用环境而定