こんにちは、今日の問題は、正規表現を使用して URL を解析することです。最初に YouTube の URL を埋め込みビデオに変換し、残りの URL (通常のリンクのみ) を href リンクに変換したいと考えています。私はこれらの両方を機能させました.私の問題は、YouTubeのURLを変換した後、2番目の正規表現を置き換えてYouTubeの動画を台無しにすることです.そのために必要なのは、iframeタグを理想的に無視することです. 私は正規表現が苦手であることを最初に認めますので、少し助けていただければ幸いです。正規表現の半分まともな人にとってはそれほど難しくないと思います。
乾杯、ヨルダン
<script type="text/javascript">
function linkifyYouTubeURLs() {
//replaces youtubeurls with iframe
var re = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[?=&+%\w-]*/ig;
document.getElementById('CPH_Main_postContent').innerHTML = document.getElementById('CPH_Main_postContent').innerHTML.replace(re, '<br><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="350" src="http://www.youtube.com/embed/$1" frameborder="0"> </iframe><br>');
//replaces urls with links
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
document.getElementById('CPH_Main_postContent').innerHTML = document.getElementById('CPH_Main_postContent').innerHTML.replace(exp, "<a href='$1'>$1</a>");
}