2017-09-28 10 views
-2
私は、テキスト内のすべてのリンクを見つけようとしています

その持っているHTTPまたはHTTPS、彼らは、このコードで存在し、それらにそれを空白のターゲットを追加:はリンクに空白のターゲットを追加し、HTTPまたはHTTPS

const text = this.node.body; 
    const regex = /https?:\/\//i; 
    let newStr = text.replace(regex, '$& target="_blank"'); 

    return newStr; 

しかし、 、それは動作しません、httpまたはhttpsを持っているリンクは空白のターゲットを取得していません。これを行う正しい方法は何ですか? これは、例えばテキストです:

<p><a href='www.link.com'>Link</a></p><p><div><img src='http://image.jpg' /></div></p><p><a href='http://link.html'>link</a></p> 

そして、これはコードの結果である:

<p><a href='www.link.com'>Link</a></p><p><div><img src='http:// target="_blank"/image.jpg' /></div></p><p><a href='http://link.html'>link</a></p> 
+1

コンテキストとは何ですか?それはノード(サーバー)コードですか? –

+0

解析すると予想されるテキストの例を表示してください –

+0

これは次のようになります:https://stackoverflow.com/questions/46469541/js-regex-for-finding-urls-in-body-text-not -46469723#46469723 – Rajesh

答えて

0

はこれを試してみてください:

document.querySelectorAll('a[href^="http"]').forEach(function(e) { 
    e.setAttribute('target', '_blank'); 
}); 
+0

コメントの下にあるリンクを参照してください。この解決策は役に立ちません – Rajesh

+0

あなたの編集が表示されます。これはあなたの元の質問に対する答えでしたが、新しいパラメータに合わせて編集できるかどうかがわかります。 – JonahAaron

+0

@Rajeshあなたの編集では、 "www.link.com"を指すリンクを参照します。これはオフサイトのリンクではないので、ユーザーをhttp://yoursite.com/www.link.comに送ってください。 – JonahAaron

関連する問題