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


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 屏蔽一个区域内的所有元素,禁止输入
Oct 22 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
asp.net下利用js实现返回上一页的实现方法小集
Nov 24 Javascript
关于递归运算的顺序测试代码
Nov 30 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
JavaScript中的null和undefined区别介绍
Jan 01 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
基于nodejs实现微信支付功能
2017/12/20 NodeJs
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
pygame实现弹球游戏
2020/04/14 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
计算机通信专业推荐信
2014/02/22 职场文书
科研课题实施方案
2014/03/18 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android