小程序中手机号识别的示例


Posted in Javascript onDecember 14, 2020

最近做的一个页面里面包含手机号,点击可以拨打电话,本计划着让后端把各个字段查出来就行了,结果接口方面给直接拼好了。

小程序中手机号识别的示例

接口返回的字符串:

"【王海】师傅已接单,联系电话:18839687266。稍后与您联系。师傅签到码为【1234】,师傅上门输入签到码后才可开始服务。"

这让我们绑定打电话的事件就不那么方便了,问题聚焦到解析字符串,找出手机号。

split大法,通过split得到包含手机号的数组,然后遍历这个数组,给手机号的元素打上标签。

parseStr (str){
  const regPhone = /(1\d{10})/ 
  const list = str.split(regPhone)
  const result = []
  return list.map(c => {
    let tag
    regPhone.test(c) ? tag = 'phone' : tag = 'text'
    return {
      type: tag,
      text: c
    }
  })
}

小程序中手机号识别的示例 

通过parseStr函数得到合适的格式后,循环渲染给手机号绑定事件就可以了,代码大概如下:

<view>
  <block wx:for="{{data}}" wx:for-item="i" wx:key="*this">
   <text wx:if="{{i.type === 'text'}}">{{i.text}}</text>
   <text wx:else bindtap="call(i.text)">{{i.text}}</text>
  </block>
</view>

挺简单的一个实现,就是一开始没想到用split。另外一个要注意的点是这个正则regPhone,仔细看,里面加了有括号,如果separator是包含捕获括号的正则表达式(),则匹配结果包含在数组中。

小程序中手机号识别的示例 

如果不加括号,相当于是把匹配到的手机号给丢掉了,加上括号,最终数组中才会包括我们匹配到的手机号。

到此这篇关于小程序中手机号识别的示例的文章就介绍到这了,更多相关小程序 手机号识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
WebPack基础知识详解
Jan 16 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
AngularJS实时获取并显示密码的方法
Feb 06 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
基于Vue的侧边目录组件的实现
Feb 05 Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 Javascript
vue路由的配置和页面切换详解
Sep 09 Javascript
Vue如何跨组件传递Slot的实现
Dec 14 #Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 #Vue.js
vue3.0实现插件封装
Dec 14 #Vue.js
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 #Vue.js
浅谈JSON5解决了JSON的两大痛点
Dec 14 #Javascript
Vue实现点击当前行变色
Dec 14 #Vue.js
如何在JavaScript中等分数组的实现
Dec 13 #Javascript
You might like
很让人受教的 提高php代码质量36计
2012/09/05 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
vue axios封装及API统一管理的方法
2019/04/18 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
个人简历自我评价范文
2014/02/04 职场文书
超市客服工作职责
2014/06/11 职场文书
物业消防安全责任书
2014/07/23 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android