2016-09-10 5 views
-2

私はアンドロイドの自動電話番号ハイライトアプリケーションに取り組んでいます。私はAndroidのブラウザにjavascriptファイルを組み込み、次のコードを使用してhtmlドキュメントを書き換えました。javascriptでhtml書き換えが行われない

var regex = /\d{10}/g; 
var text1234 = $("body:first").html(); 
text1234 = text1234.replace(regex, "<a href='tel:$&'>$&</a>"); 
$("body:first").html(text1234); 

このコードは、javascriptファイルを含まないいくつかのWebページで動作しており、他のブラウザとはクラッシュします。 "$(" body:first ").html(text1234);"この行は変更せずにページをロードするだけです。この問題を解決する方法。

+0

どのようにクラッシュしますか? –

+0

javascriptのコンテンツを持つウェブページでブラウザがクラッシュします。読み込みとクラッシュが表示されます。 –

+0

正規表現を実行するにはあまりにも多くのメモリを占有すると推測します。実際には、あなたのコードはHTMLコンテンツの10桁の数字をすべて置き換えることに気付いていますか?それはある時点で失敗することになります。 '

'は –

答えて

0

答えは以下のとおりです。それは罰金として働いています。

var phonePattern = /\s((\+\d{1,3}(-|)?\(?\d\)?(-|)?\d{1,5})|(\(?\d{2,6}\)?))(-|)?(\d{3,4})(-|)?(\d{4})((x| ext)\d{1,5}){0,1}/g, 
phoneReplacement = '<a href="tel:$&">$&</a>'; 

$(document).ready(function() { 

    $('*','body').each(function() { 
     $(this).html($(this).html().replace(phonePattern,phoneReplacement)    ); 
    }); 

}); 
関連する問題