微信小程序自动识别收货地址

为提升用户体验,在用户新增收货地址时,加入自动识别收货地址功能。

.wxml

<view class="top">
  <input type="text" placeholder="复制收货信息(格式:姓名→电话→地址)" value="{{distinguish}}"
    bindinput="distinguishinput"></input>
  <text bindtap="changtext">自动识别</text>
</view>

.js

changtext: function (e) {
  var that = this;
  var text = that.data.distinguish;
  var text = text.replace(/(^\s*)|(\s*$)/g, ""); //清除文本前后空格
  if (text == '') {
    that.setData({
      u_name: '',
      u_phone: '',
      u_address: ''
    })
    return;
  }
  //电话号码正则表达式
  var regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
  var phone_num = text.match(regx);
  if (phone_num != null) {
    var phone = text.indexOf(phone_num[0]);
  }
  var name = text.indexOf("姓名:");
  if (name >= 0) {
    var phone = text.indexOf("电话:"),
      address = text.indexOf("地址:");
    var u_name = text.substring(name + 3, phone),
      u_phone = text.substring(phone + 3, address),
      u_address = text.substring(address + 3, text.length);
    that.setData({
      u_name: u_name,
      u_phone: u_phone,
      u_address: u_address
    })
  } else if (phone >= 0) {
    var u_name = text.substring(0, phone),
      u_phone = text.substring(phone, phone + 11),
      u_address = text.substring(phone + 11, text.length);
    that.setData({
      u_name: u_name,
      u_phone: u_phone,
      u_address: u_address
    })
  } else {
    that.setData({
      u_name: '',
      u_phone: '',
      u_address: ''
    })
    return;
  }
  that.setData({
    nameText: u_name, //收货人
    phoneText: u_phone, //联系方式
    addressText: u_address, //详细地址
  })
}

 

posted @ 2024-07-08 08:54  土小狗  阅读(189)  评论(0编辑  收藏  举报