2017-11-03 14 views
-2

私はHTMLコードを持っています、それはバックエンドから生成しています、私はHTMLページだけを使用できます。私はバックエンドコードを制御できません。 JavaScriptを使用して、すべてのメールアドレスにハイパーリンクを追加します。ここではhtmlですが、私はこれの3行しか持っていません。電子メールIDを検出してハイパーリンクを追加します

<div class="content"> 
    Title: dev<br> 
    Phone: 1234567890<br> 
    Email: [email protected]<br> 
</div> 
<div class="content"> 
    Title: dev<br> 
    Phone: 1234567890<br> 
    Email: [email protected]<br> 
</div> 
<div class="content"> 
    Title: dev<br> 
    Phone: 1234567890<br> 
    Email: [email protected]<br> 
</div> 
+0

あなたの質問は、不明ですあなたは例を与えることができます –

+2

ようこそスタックオーバーフロー! [ヘルプ]、特に[*どのように良い質問をしますか*](/ help/how-to-ask)を読んでください。関連トピックの[検索](/ help/searching)仕事をしようとする。 ***もし***あなたが立ち往生して、より多くの研究と検索をした後、元気が出ることができないなら、あなたの試みの[mcve]を投稿し、あなたがどこにいるのかを具体的に言う。 –

+0

javaScriptを使用してすべての電子メールアドレスにハイパーリンクを追加するだけで、HTMLコードを編集することはできません。私に電子メールアドレスを検出して、javaScriptを使ってその上にハイパーリンクを追加するにはどうすればいいですか? –

答えて

0

これは簡単です...

使用のメールフォームテキストに一致し、ハイパーリンクでそれらを置き換えるために、正規表現..

var text = document.querySelectorAll('div.content'); 
 
    
 
//use your reg here... 
 
var emailReg = /(([^<>()\[\]\.,;:\[email protected]\"]+(\.[^<>()\[\]\.,;:\[email protected]\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\[email protected]\"]+\.)+[^<>()[\]\.,;:\[email protected]\"]{2,})$/igmu ; 
 

 
text.forEach(function(item){ 
 
    var textInner = item.innerHTML; 
 

 
    var email = textInner.match(emailReg)[0]; 
 

 
    var emailHype = `<a href="mailto:${email}">${email}</a>`; 
 

 
    var textInner = textInner.replace(emailReg ,emailHype); 
 
    item.innerHTML = textInner; 
 
    
 
});
<div class="content">[email protected]</div> 
 
<div class="content"> 
 
    Title: dev<br> 
 
    Phone: 1234567890<br> 
 
    Email: [email protected]<br> 
 
</div> 
 
<div class="content"> 
 
    Title: dev<br> 
 
    Phone: 1234567890<br> 
 
    Email: [email protected]<br> 
 
</div>

関連する問題