从一长串字符串中找出图片,查看是否符合md5要求

javascript 复制代码
/**检查内容中的图片否含有外部链接*/
function checkExternalLinks(content){
    var pattern = /<img[^>]+src=['"]([^'"]+)['"][^>]*>/g;
    var match;
    var index = 0;

    while ((match = pattern.exec(content)) !== null) {
        var imageUrl = match[1];
        var regex = /\/storage\/([a-zA-Z0-9]{32})/; //正则  外链不匹配/storage/MD5

        if (!regex.test(imageUrl)) {
            return index + 1; // 返回第一个包含外部链接的图片的索引
        }

        index++;
    }

    return -1; // 所有图片链接都是有效的,返回 -1
}

当第一次调用 pattern.exec(content) 方法时,它会从 content 字符串中开始查找与正则表达式 pattern 匹配的内容。如果找到了匹配项,它会返回一个包含匹配信息的数组,并将正则表达式的"指针"移动到下一个匹配项之后的位置。

下一次再调用 pattern.exec(content) 方法时,它会从上一次匹配项的后面继续搜索,以查找下一个匹配项。它会逐步读取字符串,每次找到一个匹配项,都会返回相应的数组,并继续将正则表达式的"指针"移动到下一个匹配项之后的位置。

这种逐步读取和匹配的过程会持续进行,直到字符串末尾或者没有更多的匹配项为止。当没有更多匹配项时,pattern.exec(content) 会返回 null

因此,pattern.exec(content) 方法会一次返回一个匹配项,并且在每次调用后会继续读取字符串以查找下一个匹配项。

相关推荐
QCoding4 分钟前
Java转AI第三课:Spring AI如何把100行HTTP代码缩减到10行?
java·人工智能
振宇i6 分钟前
Java集成openfeign远程RPC调用教程
java·rpc·openfeign
wear工程师7 分钟前
volatile 这题别只答「可见性」:面试官真正想听的是这条 happens-before
java·jvm
秋天的一阵风10 分钟前
🔥 ECMAScript 2026 来了!使用这些新特性,JS 代码直接少一半
前端·javascript·ecmascript 6
王九思11 分钟前
对称加密与非对称加密详解
java·网络·数据库
SimonKing21 分钟前
Spring Boot 4.0 + gRPC 极简集成:4步搞定,比REST还丝滑
java·后端·程序员
前端进阶之旅24 分钟前
Next.js 16.3 新特性全解析 AI 驱动开发与 Instant Navigations 实战指南
开发语言·javascript·人工智能
C++、Java和Python的菜鸟24 分钟前
第3章 后端Web基础 (Maven)
java
小小编程路26 分钟前
Java super 关键字详解:用法、场景与常见误区
java·开发语言
Cobyte28 分钟前
编译解析器的基础——状态模式与状态机的原理
前端·javascript·vue.js