HTMLタグを含む文字列の中にあるURLをaタグに置き換えしたく、正規表現を用いて以下のコードを書いて実行しました。
一応動いてはいるのですが、URLとタグ(このコードで言うところのP閉じタグ)が隣接していると、タグも含めてURLと見なしてしまうため、正しくないリンクURLが生成されてしまいます。
この正規表現をどのように改良すれば、タグを含まない純粋なaタグが作れますでしょうか?
また、「http」で始まらないURL(例えば「google.com」を「<a href="http://google.com" target="_blank">」にするなど)もaタグ化できれば尚良いのですが、これは正規表現だけでは難しいでしょうか?
以上よろしくお願いいたします。
JavaScript
1var text = '<p>あいうえおかきくけこhttp://google.com</p>'; 2 text = text.replace(/(http(s)?://[\x21-\x7e]+)/gi, "<a href='$1' target='_blank'>$1</a>"); 3 console.log(text); 4 5// 実行結果(p閉じタグを巻き込んでしまっている) 6// <p>あいうえおかきくけこ<a href='http://google.com</p>' target='_blank'>http://google.com</p></a> 7 8// こういう結果となってほしい 9// <p>あいうえおかきくけこ<a href="http://google.com" target="_blank">http://google.com</a></p>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/05 01:54