小谈 - web模仿手机打电话与正则表达式
昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能。
研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话的附件都会[#calltel#:]此字段(这个字段应该是程序在使用editor插入电话时规定的标识吧),那就更好了,就发现出口了。
忽然灵机一动想到个方法,一:用正则判断[#calltel#:],二:然后再在页面head标签中加一个meta标签这样就可以了。
但是问题又来了,第一步怎么实施呢?而且自我批评一下,正则没怎么接触过,之前也是用到了再查查用用的,唉,书到用时方恨少啊!没有办法只有请教了。找了一位资深专家研究出来了。
但是怎么取值呢?而且如果实现的话,结果是两部分的呀。现在的目的是只抓取电话。没办法找度娘帮忙吧,结果招到了这个:
第一步:要在.net中使用正则表达式,需要引用System.Text.RegularExpressions 命名空间。新建一个正则表达式类:
第二步:使用正则表达式匹配字符串:
Match方法返回单个的精确匹配结果,Matches返回所有的匹配结果的一个Match类的集合,IsMatch方法返回是否能够匹配输入字符串的一个bool结果。
Match类是一个保持匹配结果的类,它有一个成员Groups,是一个保存Group class的集合类。
Group 表示单个捕获组的结果。由于存在数量词,一个捕获组可以在单个匹配中捕获零个、一个或更多的字符串,因此 Group 提供 Capture 对象的集合。
Capture 表示单个成功捕获中的一个子字符串。
Group从Capture继承,表示单个捕获组的最后一个字符串。
即对于一个Group 类的实例对象group:
int captureCount = group.Captures.Count;
则group.Value与group.Captures[captureCount - 1].Value是相等的。
以下是几个正则表达式的使用样例:
使用正则表达式检查字符串是否具有表示货币值的正确格式。
使用正则表达式检查字符串中重复出现的词。
使用 Capture 对象在控制台中显示每个正则表达式匹配项组的成员。
参照着这个方法找到一种适合我自己的方法了,我就用Matches吧,为了方便起见。然后就是把内容中的电话替换一下,也就是第二大部分了。
刚 开始做的时候是直接把meta分不同的浏览器显示在不同的head标签中,但是问题是ipone的可以实现了,但是android的确一直提示说协议不符 合要求。整了半天也没整出来,然后就狂找资料。当然也有android的小同学帮忙了。一直整到下班没结果。郁闷了一个晚上。
今天早上我们协商了一下达成共识,(其实这个也是android的小朋友提醒的),就是把meta标签部分客户端。一直用iphone的协议,然后把meta替换成url的链接,他们根据tel做一些处理。
然后就可以实现模仿拨号功能了。
哦,对了最重要的好像没说,就是meta标签的显示:
这样的就ok了。为了防止自己忘就赶快备份一下吧,趁热打铁的行动起来。同时也希望对大家有帮助。
小谈 - web模仿手机打电话与正则表达式的更多相关文章
- 巨人大哥谈Web应用中的Session(session详解)
巨人大哥谈Web应用中的Session(session详解) 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
- 从电商秒杀与抢购谈Web系统大规模并发
从电商秒杀与抢购谈Web系统大规模并发 http://www.iamlintao.com/4242.html 一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程 ...
- 示例浅谈PHP与手机APP开发,即API接口开发
示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞 ...
- Web Scraper 高级用法——利用正则表达式筛选文本信息 | 简易数据分析 17
这是简易数据分析系列的第 17 篇文章. 学习了这么多课,我想大家已经发现了,web scraper 主要是用来爬取文本信息的. 在爬取的过程中,我们经常会遇到一个问题:网页上的数据比较脏,我们只需要 ...
- 小程序 web 端实时运行工具
微信小程序 web 端实时运行工具 https://chemzqm.github.io/wept/
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...
- 一套代码小程序&Web&Native运行的探索06——组件系统
接上文:一套代码小程序&Web&Native运行的探索05——snabbdom 对应Git代码地址请见:https://github.com/yexiaochai/wxdemo/tre ...
- 一套代码小程序&Web&Native运行的探索05——snabbdom
接上文:一套代码小程序&Web&Native运行的探索04——数据更新 对应Git代码地址请见:https://github.com/yexiaochai/wxdemo/tree/ma ...
随机推荐
- C#邮箱发送验证码
public static void SendTo(string mailAddress, string subject, string body) { //mailAddress 所要 ...
- 复制mueclipse项目到eclipse
本文适用于将MyEclipse上的项目projectA检出后重命名为projectB的情况,如果只是检出projectA到Eclipse,也可以部分参考 1.从svn上检出Myeclipse项目到Ec ...
- Jmeter学习
网址: http://www.ltesting.net/ceshi/open/kyxncsgj/jmeter/ http://www.cnblogs.com/TankXiao/p/4059378.ht ...
- amr转MP3
using System; using System.Threading; using System.IO; using System.Diagnostics; using System.Securi ...
- tomcat使用线程池配置高并发连接
1:配置executor属性打开/conf/server.xml文件,在Connector之前配置一个线程池:[html] view plain copy<Executor name=" ...
- hibernate配置文件中的schema="dbo"在MySQL数据库不可用
把项目的数据库由SQL Server更改为MySQL之后,发现hibernate报错. 问题在于schema="dbo",使用SQL Sever数据库时正常,使用MySQL数据库需 ...
- psp工具需求分析
PSP个人软件过程开发工具需求分析文档 a.业务需求 a.1 背景 二十一世纪是软件开发的黄金时期,有人把过去的十年称作软件高度发展的十年,不可置疑,越来越多的软件设计需求是物联网时代的趋势,越 ...
- Android studio 分析内存泄漏
以前用eclipse的时候,我们采用的是DDMS和MAT,不仅使用步骤复杂繁琐,而且要手动排查内存泄漏的位置,操作起来比较麻烦.后来随着Android studio的潮流,我也抛弃了eclipse加入 ...
- maven 环境的配置 JAVA_HOME not found in your envirnment
maven 的环境配置在配置maven前 先做好java的环境配置现在假定java已经配置好了.在环境变量中添加;maven的解压路径\bin 例如:D:\soft\java\apache-maven ...
- 如何将动态生成Word文件
大致的思路是先用office2003或者2007编辑好Word的样式,然后另存为XML,将XML翻译为FreeMarker模板,最后用Java来解析FreeMarker模板并输出Doc.经测试这样方式 ...