如何提取img标签src中player_photos_big_2014与_thumb.jpg间的数字
错误原因说明
- 获取属性逻辑错误:
$('.articlepicture').attr('src')仅返回第一个匹配类名的图片的src属性,无法批量处理所有图片。 - 正则语法错误:正则内部的
/没有转义,会被识别为正则结束符导致语法失效;同时.jpg中的.未转义会匹配任意字符,泛匹配.+?也可能匹配到非数字内容,不符合提取要求。
正确实现方案
如果需要提取所有符合要求的数字,可直接使用以下代码:
// 遍历所有匹配的图片,提取数字存入数组 const result = $('.articlepicture').map(function() { const src = $(this).attr('src'); // 正则转义特殊字符,精准匹配3-5位数字 const match = src.match(/player_photos_big_2014\/(\d{3,5})_thumb\.jpg/); return match ? match[1] : null; }).get().filter(item => item !== null); // 输出结果为 ["11247", "5666", "76893"] console.log(result);
如果仅需要处理单个src字符串,直接使用修正后的正则匹配即可:
const match = srcStr.match(/player_photos_big_2014\/(\d{3,5})_thumb\.jpg/) const num = match ? match[1] : null
内容的提问来源于stack exchange,提问作者MShack
相关产品推荐
相关产品推荐

