无需使用后向断言(?<=)提取URL中contact_与.jpeg间数字的方法
兼容多浏览器的正则提取方案
不需要使用后向断言就能实现需求,核心思路是把前缀字符串纳入匹配规则,通过捕获组提取目标内容,所有主流浏览器都支持该语法。
推荐正则表达式
/contact_(\d+)\.jpeg/
规则说明
- 直接匹配固定前缀
contact_,无需使用后向断言 - 第一个捕获组
(\d+)匹配连续数字,就是你需要提取的目标内容 - 末尾匹配转义后的
\.jpeg,避免.匹配任意字符导致规则不准
调用示例(JavaScript)
const testUrl = 'https://example.com/img/33421/contact_1739081.jpeg?mod=12741-1385' const matchRes = testUrl.match(/contact_(\d+)\.jpeg/) const targetNum = matchRes ? matchRes[1] : '' // 最终得到 targetNum 为 '1739081'
方案优势
- 无零宽断言语法,兼容IE在内的所有主流浏览器
- 相比之前用
.*匹配的规则,\d+仅匹配数字,精准度更高,不会出现边界匹配错误的问题
内容的提问来源于stack exchange,提问作者EndlessLearning
相关产品推荐
相关产品推荐

