检查图片是否具有外部网址

时间:2019-05-17 00:37:46

标签: javascript php

我们为“页面”构建器创建了一个图片库插件 像这样将图像显示为图库:

<img class="sppb-img-responsive" src="'.JUri::base(true).'/'.$value->thumb.'" alt="' . $value->title . '">

但是问题是当它使用外部图像链接时 它返回一个错误,如本例所示:

<img class="sppb-img-responsive" src="/dev/ibwintalldev/https://cdn.pixabay.com/photo/2015/05/15/14/38/computer-768608_1280.jpg" alt="test">

有什么方法可以检测到此问题以解决此问题?

还是要检查图像是否具有外部链接?

谢谢 拉玛(Lahmar)

2 个答案:

答案 0 :(得分:0)

为什么src标签包含/dev/ibwintalldev/,因为未显示哪个图像。删除并尝试。

<html>
    <body>
        <img class="sppb-img-responsive" 
            src="https://cdn.pixabay.com/photo/2015/05/15/14/38/computer-768608_1280.jpg" 
            alt="test">
    </body>
</html>

答案 1 :(得分:0)

您可以像在javascript中那样删除https:之前不需要的文本:

// returns all images on page
images = document.getElementsByTagName("img")

for (let img of images) {
    // replaces extra text from the src 
    img.src = img.src.replace(/(.+?)(?>http)/, "")
}

正则表达式说明:

  

(。+?)匹配直到此之后的所有内容(如果有的话)(即http)并添加到匹配组

     

(?= {http)向前寻找模式http(但不包含在匹配组中,因此不会被替换)

以下显示了正则表达式的工作原理:

let img = new Image;
img.src="/dev/ibwintalldev/https://cdn.pixabay.com/photo/2015/05/15/14/38/computer-768608_1280.jpg";

// we apply the regex
img.src = img.src.replace(/(.+?)(?=http)/, "")

console.log(img.src);