我们的需求是这样的》 客户留了一段备注信息,里面可能会有手机号(可能是多个号码),怎么才能识别出手机号,并且手机号要能高亮显示,当用户看到手机号的时候,直接点击手机号就可以拨打电话了,这样的功能App里面很好实现,但是小程序怎么实现呢。
正则匹配留言,找出电手机号码,结合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)
==============================
<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
})
}
最后在慢慢调整样式吧