zoukankan      html  css  js  c++  java
  • 小谈

       昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能。

     研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话的附件都会[#calltel#:]此字段(这个字段应该是程序在使用editor插入电话时规定的标识吧),那就更好了,就发现出口了。

     忽然灵机一动想到个方法,一:用正则判断[#calltel#:],二:然后再在页面head标签中加一个meta标签这样就可以了。

     但是问题又来了,第一步怎么实施呢?而且自我批评一下,正则没怎么接触过,之前也是用到了再查查用用的,唉,书到用时方恨少啊!没有办法只有请教了。找了一位资深专家研究出来了。

    View Code

    但是怎么取值呢?而且如果实现的话,结果是两部分的呀。现在的目的是只抓取电话。没办法找度娘帮忙吧,结果招到了这个:

    第一步:要在.net中使用正则表达式,需要引用System.Text.RegularExpressions 命名空间。新建一个正则表达式类:

    View Code

    第二步:使用正则表达式匹配字符串:

    View Code

    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是相等的。

    以下是几个正则表达式的使用样例:

    使用正则表达式检查字符串是否具有表示货币值的正确格式。

    View Code

    使用正则表达式检查字符串中重复出现的词。

    View Code

    使用 Capture 对象在控制台中显示每个正则表达式匹配项组的成员。

    View Code

    参照着这个方法找到一种适合我自己的方法了,我就用Matches吧,为了方便起见。然后就是把内容中的电话替换一下,也就是第二大部分了。

    刚 开始做的时候是直接把meta分不同的浏览器显示在不同的head标签中,但是问题是ipone的可以实现了,但是android的确一直提示说协议不符 合要求。整了半天也没整出来,然后就狂找资料。当然也有android的小同学帮忙了。一直整到下班没结果。郁闷了一个晚上。

    今天早上我们协商了一下达成共识,(其实这个也是android的小朋友提醒的),就是把meta标签部分客户端。一直用iphone的协议,然后把meta替换成url的链接,他们根据tel做一些处理。

    然后就可以实现模仿拨号功能了。

    哦,对了最重要的好像没说,就是meta标签的显示:

    View Code

    这样的就ok了。为了防止自己忘就赶快备份一下吧,趁热打铁的行动起来。同时也希望对大家有帮助。

  • 相关阅读:
    SOD开源框架MSF(消息服务框架)介绍
    c#中foreach的一种用法
    MSSql异常处理框架
    什么是架构?有几人说的清楚
    MSSql动态行转列
    WebForm版demo,模拟手机Usb接口充电
    规范化流程不能窥探的咪咪
    我对领导者的定义
    以乞丐为最大的贵客
    程序猿,是如何逆袭的
  • 原文地址:https://www.cnblogs.com/QLJ1314/p/3448112.html
Copyright © 2011-2022 走看看