使用这里的示例
<img src="site.com/player_photos_big_2014/11247_thumb.jpg" class="articlepicture">
<img src="site.com/player_photos_big_2014/5666_thumb.jpg" class="articlepicture">
<img src="site.com/player_photos_big_2014/76893_thumb.jpg" class="articlepicture">
我想要得到&;11247&;,"5666";,"76893">
尝试这个,没有工作,图像拇指名称是不同的,可以是3到5个数字
var test= $('.articlepicture').attr('src')
test.match(/player_photos_big_2014/(.+?)_thumb.jpg)[1]
尝试使用split("/").at(-1)
获得最后一个字符串(11247_thumb.jpg),然后使用replace("_thumb.jpg", "")
获得数字作为字符串,最后;如果您希望它是整型,请使用parseInt()
或Number()
所有的组合看起来应该像这样:
let playerNum = parseInt($(".articlepicture").attr("src").split("/").at(-1).replace("_thumb.jpg", ""))
console.log(playerNum)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="site.com/player_photos_big_2014/11247_thumb.jpg" class="articlepicture">
当然,这只会在文件名一致的情况下工作!
Regexp/(d+)
匹配/123456
部分和(d+)
部分提取数字部分
const result = [];
document.querySelectorAll('img.articlepicture').forEach(img => {
const n = (img.getAttribute('src').match(//(d+).*.jpg$/) || ['',''])[1];
result.push(n);
});
console.log(result);
<img src="site.com/player_photos_big_2014/11247_thumb.jpg" class="articlepicture">
<img src="site.com/player_photos_big_2014/5666_thumb.jpg" class="articlepicture">
<img src="site.com/player_photos_big_2014/76893_thumb.jpg" class="articlepicture">
你能试试吗?
test.match(/player_photos_big_2014/(.+?)_thumb.jpg)[1]
部分字符必须转义
同样,你可以在一些网站上测试你的正则表达式,它们真的很酷:https://regex101.com