我想使用正则表达式替换文本中的各种模式。我目前正在区分“普通”链接,图片和YouTube视频:
图片链接 - > < img src =“link”>
yt - > < iframe href =“link”>
网站链接 - > < a href =“link”>
我正在使用以下正则表达式模式:
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\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)(?!\")/ig;
我需要找到一种方法,以便在匹配为普通链接时确保链接不是图像或YT视频。
我目前正在使用以下不完美的解决方案: 我从图像正则表达式开始,然后是YT正则表达式。之后,我运行链接正则表达式并替换每个不以“符号结束的URL(因此不是iframe或img标记内的链接)
然而,这是非常冒险和丑陋的。 有什么更好的方法来实现我的目标?
答案 0 :(得分:1)
您可以全局搜索所有链接,并在替换方法的回调中,检查该链接是否为youtube link / image以决定如何处理它。