2016-12-06 5 views
0

正規表現を使用してテキスト内のさまざまなパターンを置き換えたいと思います。 > <のIMG SRC = "リンク">
YT - - > <のiframeのhref = "リンク">
ウェブサイトリンク - > <JSの前に一致しなかった正規表現(URL対画像)を一致させよ

画像リンク:私は現在、 "通常" のリンク、画像やYouTubeの動画を区別しています私は、次の正規表現パターンを使用していますHREF =「リンク」>

var image_reg = /(http:\/\/|https:\/\/).*(gif|jpg|jpeg|tiff|png)/ig; 
    var yt_reg = /(https:\/\/youtu.be\/|https:\/\/www.youtube.com\/watch\?v=)\S*/ig; 
    var url_reg = /https?:\/\/(www\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\+.~#?&//=]*)(?!\")/ig; 

私は一致しているときに、リンクが画像やYTビデオではないことを確認するためにどのような方法を見つける必要があります通常のリンクとして。

私は現在、以下の不完全な解を使用しています: イメージ正規表現とそれに続くYT正規表現から始めます。その後、私はリンクの正規表現を実行し、「記号(したがってIFRAMEまたはimgタグ内のリンクではない)で終わっていないすべてのURLを置き換える

しかし、これは非常に危険と醜いです。aは何 私の目標を達成するためのより良い方法はありますか?

+1

あなたはどのように、replaceメソッドのコールバックでは、唯一のすべてのリンクを検索することができあなたはコールバックで、そのコールバック内のURLをimg/ytテンプレートに対してテストし、一致した場合にテキストを変更せずに返すことができないのでしょうか?そのようにすれば、3回のスイープは必要ありません。リンクグローバルマッチ、コールバック内で追加のチェックを行います。 –

+0

良いアイデア、thx;) –

答えて

0

あなたはグローバルリンクがそれを処理する方法を決定するためにユーチューブリンク/画像であるかどうかを確認します。

関連する問題