嗨,我有一个不同的URL,类似于:
http://farm4.staticflickr.com/3877/[image_id]_[secret].jpg

例如http://farm4.staticflickr.com/3877/14628998490_233a15c423_q.jpg

我需要在整个网址之间的image_id下划线之前提取第一个数字集(即1462899849014628998490_233a15c423_q.jpg

是否有提取image_id的好方法?

现在,我将使用:

var image_id = image_url.match(/[\/]([0-9]+)_/)[1]

最佳答案

就像我在评论中说的那样,您无需在字符类中转义/符号。而且,您甚至也不需要角色类。只需\/就足够了。下面的正则表达式将捕获一个或多个数字,这些数字前有/符号,后有_符号。

\/(\d+)_


DEMO

> var image_id = image_url.match(/\/(\d+)_/)[1]
undefined
> image_id
'14628998490'


要么

如果您不想在模式中输入\d+,也可以尝试一下。

\/([^/]*?)_


DEMO

> var image_id = image_url.match(/\/([^/]*?)_/)[1]
undefined
> image_id
'14628998490'

10-05 20:51