从一长串字符串中找出图片,查看是否符合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) 方法会一次返回一个匹配项,并且在每次调用后会继续读取字符串以查找下一个匹配项。

相关推荐
非优秀程序员3 小时前
第07章 孙德良的阳谋|《互联网产品恩仇录》
javascript·后端
非优秀程序员3 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻3 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
文丑颜不良啊6 小时前
LeetCode2481~2500题目解析
java·leetcode
程序员大阳6 小时前
HTML+CSS+JS对话式实战(5)-活动管理页之查看报名名单的实现
javascript·css·html·查看报名名单
Flynn Liang7 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪7 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息7 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
秋饼8 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
新*9 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer