嗨,我有一个不同的URL,类似于:http://farm4.staticflickr.com/3877/[image_id]_[secret].jpg
例如http://farm4.staticflickr.com/3877/14628998490_233a15c423_q.jpg
我需要在整个网址之间的image_id
下划线之前提取第一个数字集(即14628998490
)14628998490_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'