2011-01-05 11 views
0

AJAXでページをロードしています。ロードされたページで電話番号(フォーマットは555.555.5555)を検索して、Jqueryを使用してtelリンクでラップします。ラップ<a> jqueryを使用して電話番号のタグを

<a href="tel:phone-number-here"> </a> 

私はこれを達成するために必要な部分を知っています(私は思う):Regexと.wrap()。私はちょうど私が持っているコードと一緒にそれらを作る方法がわかりません。私はまた、Jqueryが見つけた番号を保持し、それらをtelリンクの中に挿入する方法を確かめていません。私はそれぞれ変数と$(this)を使う必要がありますか?

ここに7〜10桁の数字を識別するための正規表現があります。

^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$ 

そして、ここでは、私は、各ページをロードするために使用しているコードです:

$(".services").click(function(){ 
    var loadUrl = "http://www.example.com";  
    $("#content").html(ajax_load).load(loadUrl + " #content"); 
}); 

は、任意のヘルプを考え、私は、私たちのサイトには、将来的にはピリオドを使用して停止した場合には、さまざまな区切り文字に開いたままにしておきたいです感謝する。

+0

ほとんどの携帯電話では、これを単独で行うことはできませんか? – Chuck

+0

彼らですか?私は確信していませんでした。それが本当であれば、私はこのコードを1時間半かけて実行しようとしているので、山々の時間を節約できます。電話が自動的にそれを行うならば、私は気にしません。 – qp2wd

+0

これは必要ありません。私は、電話番号をダイヤルすることができるほとんどの電話機は、あなたがこの努力を踏むことを要求せずに、そうする能力を持っていると言います。 – js1568

答えて

0

This questionは、特定の文字列を含むページ上のすべての要素を取得する方法を示します。あなたはおそらく正規表現を使うこともできます。次に、見つかったすべての要素に対して正規表現を使用して文字列の置換を行うことができます。

+0

私はこれを試しました: var num = $( '*:contains( "^(?:(?:\ +?1 \ s *(?:[.-] \ s *)?)? (\ s *([2-9] 1 [02-9] | [2-9] [02-8] 1 | [2-9] [02-8] [02-9])\ s * \) |([2-9] 1 [02-9] | [2-9] [02-8] 1 | [2-9] [02-8] [02-9]))\ s *(? ([2-9] 1 [02-9] | [2-9] [02-9] 1 | [2-9] [02-9] {2})\ ??([:] \ s?)?([0-9] {4})(?:\ s *(?:#| x \。 (\ d +))?$ ") '); num.wrap( ''); 何も起こりませんでした。私は本当にjavascriptを知らないので、私はどのように正規表現の要求を構成するか、何かをさせるために後続のラップを行うべきかどうかはわかりません。 – qp2wd

+0

@ qp2wd:正規表現は通常引用符で囲まれません。引用符で囲むと、その正確な文字列が検索されます。一般に、正規表現は 'var myRegex =/foo /'のように見えます。それを変数に代入し、 '$(" *:contains(myRegex) ")'を実行します。私はこれを試したことがないので、それがうまくいくかどうかわからない、あなたはそれを使いこなすか、jQueryのドキュメントを検索してより良い解決策を探さなければならないだろう。 – Samo

関連する問題