昨天遇到了一個很棘手的問題,就是手機端調用web端的頁面,若是用編輯器插入的內容頁面中有電話的的數據就要變一下格式,讓手機端能夠實現撥號的功能。android
研究了半天就是沒一點頭緒,可是偶爾看到數據中每個電話的附件都會[#calltel#:]此字段(這個字段應該是程序在使用editor插入電話時規定的標識吧),那就更好了,就發現出口了。web
突然靈機一動想到個方法,一:用正則判斷[#calltel#:],二:而後再在頁面head標籤中加一個meta標籤這樣就能夠了。正則表達式
可是問題又來了,第一步怎麼實施呢?並且自我批評一下,正則沒怎麼接觸過,以前也是用到了再查查用用的,唉,書到用時方恨少啊!沒有辦法只有請教了。找了一位資深專家研究出來了。瀏覽器
可是怎麼取值呢?並且若是實現的話,結果是兩部分的呀。如今的目的是隻抓取電話。沒辦法找度娘幫忙吧,結果招到了這個:iphone
第一步:要在.net中使用正則表達式,須要引用System.Text.RegularExpressions 命名空間。新建一個正則表達式類:編輯器
第二步:使用正則表達式匹配字符串:url
Match方法返回單個的精確匹配結果,Matches返回全部的匹配結果的一個Match類的集合,IsMatch方法返回是否可以匹配輸入字符串的一個bool結果。spa
Match類是一個保持匹配結果的類,它有一個成員Groups,是一個保存Group class的集合類。.net
Group 表示單個捕獲組的結果。因爲存在數量詞,一個捕獲組能夠在單個匹配中捕獲零個、一個或更多的字符串,所以 Group 提供 Capture 對象的集合。3d
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了。爲了防止本身忘就趕快備份一下吧,趁熱打鐵的行動起來。同時也但願對你們有幫助。