match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
Page({
data: {
content:'我的电话号码是:15301234567,132012314567'
},
onShow(){
let regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
this.setData({
content: this.matchPhoneNum(this.data.content,regx)
})
},
matchPhoneNum(str,regx){
console.log("替换前的文本内容:",str)
// 查找出文本中的所有手机号码
var phoneNums = str.match(regx);
console.log("phoneNums",phoneNums)
if(phoneNums){
for(var i= 0;i<phoneNums.length;i++){
//手机号全部替换
var temp = phoneNums[i]
//隐藏手机号中间4位(例如:153012345678,隐藏后为153****4567)
temp = temp.replace(/^(\d{3})\d{4}(\d{4})$/,"$1****$2");
str = str.replace(phoneNums[i],temp);
}
}
console.log("替换后的文本内容:",str)
return str;
}
})