admin 管理员组

文章数量: 894198

微信小程序识别字符串中的手机号,手机号高亮显示,并且可以点击这个手机号,拨打电话?

这个需求类似淘宝物流,网上查了很多 微信社区有个很帮助我 这里:  感谢

正则匹配留言,找出电手机号码,结合wx.makePhoneCall// 下面这段比较繁琐var a = '15900000001一二15900000002三四15900000003五六15900000004', 
b = a.match(/(1\d{10})/g),c = a.split(/(?:1\d{10})/),
list = [];
for (var i in c){if (c[i] == '') {i == 0 && list.push({ type: 'phone', val: b[0] })} else {list.push({ type: 'text', val: c[i] })list.push({ type: 'phone', val: b[i] })}
}
// ===================================
// 下面这段比较简洁一点 (推荐)
var a = '15900000001一二15900000002三四15900000003五六15900000004', 
c = a.split(/(?:1\d{10})/),
list = [];
for (var i in c){var flag = c[i] != '' && /^(1\d{10})$/.test(c[i])c[i] != '' && list.push({ type: flag ? 'phone' : 'text', val: c[i] })}
this.setData({list: list
})
console.log(list)//更简洁的
更简洁一点的,只需split
var a = '15900000001一二15900000002三四15900000003五六15900000004',c = a.split(/(1\d{10})/),list = []for (var i in c){var flag = c[i] != '' && /^(1\d{10})$/.test(c[i])c[i] != '' && list.push({ type: flag ? 'phone' : 'text', val: c[i] })}<view wx:for="{{list}}" wx:key bindtap="{{item.type=='phone'?'makePhoneCall':''}}" 
data-phone="{{item.type=='phone'?item.val:''}}">{{item.val}} </view>makePhoneCall: function (e) {wx.makePhoneCall({phoneNumber:e.currentTarget.dataset.phone})
}

项目代码:<!-- 电话高亮 -->
<view class="wuliumessage"><text wx:for="{{item.Message}}" wx:key="index" wx:for-item="items" 
style="color:{{items.type=='phone'?'#61B8FD':''}}" 
catchtap="{{items.type=='phone'?'makePhoneCall':''}}" 
data-phone="{{items.type=='phone'?items.val:''}}">{{items.val}}</text>
</view>Paths.forEach((item, i) => {
//识别字符串中包含的电话并切割
let a = item.Message;
var c = a.split(/(1\d{10})/);
let list = [];for (var i in c) {var flag = c[i] != '' && /^(1\d{10})$/.test(c[i])c[i] != '' && list.push({ type: flag ? 'phone' : 'text', val: c[i] })}item.Message = list;
})item的值是
0:{Message: "您的快件代签收(本人),如有疑问请电联小哥【xxx,电话:133xxx1106】。疫情期间顺丰每日对网点消毒、小哥每日测温、配戴口罩,感谢您使用顺丰,期待再次为您服务。"Time: 1594782509Type: 300003
}

本文标签: 微信小程序识别字符串中的手机号,手机号高亮显示,并且可以点击这个手机号,拨打电话