4

これは、答えられなかったこの古い質問と同様の質問です: jquery を使用して電話番号を <a> タグで囲みます。

カスタム CMS を使用する既存のサイトから単純な jQuery モバイル サイトを作成しています。CMS には、次のようなコードとテキストを含むエントリがあります。

<div id="departments">
   <ul>
     <li> Department 1 - (555) 123-1234</li>
     <li> Department 2 - (555) 123-4321</li>
     <li> Department 3 - (555) 123-6789</li>
   </ul>
</div>

ほとんどの携帯電話ブラウザーは、電話番号をクリック可能なリンクに自動的に変換し、電話番号を使用してダイヤラーを起動することを知っています。ただし、すべてがそうするわけではなく、jQueryを使用して上記を次のように変換できるようにしたいと考えています。

<div id="departments">
       <ul>
         <li> Department 1 - <a href="tel:5551231234">(555) 123-1234</a></li>
         <li> Department 2 - <a href="tel:5551234321">(555) 123-4321</a></li>
         <li> Department 3 - <a href="tel:5551236789">(555) 123-6789</a></li>
       </ul>
</div>

これを生成する手順には、正規表現を使用して電話番号のパターンを照合することが含まれることを理解しています。

何か案は?これは、多くの人のために作成するのに役立つプラグインになると思います。

アップデート

以下の回答とコメントを使用して試したことは次のとおりです。

var regex = ((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4};

var text = $("body:first").html();

text = text.replace(regex, "<a href=\"tel:$1\">$1</a>");

$("body:first").html(text);

フィドル: http://jsfiddle.net/PShYy/

http://gskinner.com/RegExr/?35o5pを使用して、パターンが機能するはずであることがわかります。

jQueryで正規表現を使用して検索と置換を正しく行う方法が問題になっていると思います。研究を続けますが、もし誰かがチャイムを鳴らしたいなら、私はそれを感謝します.

4

2 に答える 2

7

ジョンの答えをベースとして使用して、次の作業を行いました。

var regex = /((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}/g; 

var text = $("body:first").html();

text = text.replace(regex, "<a href=\"tel:$&\">$&</a>");

$("body:first").html(text);

デモ: http://jsfiddle.net/PShYy/2/

于 2013-07-27T22:56:19.257 に答える
0

電話番号のすべてのインスタンスを正規表現に置き換えることができます

js

    var text = $("body:first").html();

    text = text.replace(/(phone\-number)/g, "<a href=\"tel:$1\">$1</a>");

    $("body:first").html(text);

html

        <div id="departments">
           <ul>
             <li> Department 1 - phone-number</li>
             <li> Department 2 - phone-number</li>
             <li> Department 3 - phone-number</li>
           </ul>
        </div>
于 2013-07-27T19:08:01.117 に答える