Вы можете сделать шаблон немного более конкретным c, сопоставив протокол, за которым следует сопоставление 1+ вхождений непробельного символа \S+
.
Затем сопоставьте последнее вхождение /
и захватить идентификатор, который состоит из 24 символов ([A-Za-z0-9]{24})
, за которыми следует сопоставление точки и 2 или более раз char az \.[a-z]{2,}
Если вы хотите сопоставить всю строку, вы можете добавить якоря, чтобы подтвердить начало ^
и конец $
строки.
Идентификатор находится в группе захвата 1.
^https?:\/\/\S+\/([A-Za-z0-9]{24})\.[a-z]{2,}$
Regex demo
const regex = /https?:\/\/\S+\/([A-Za-z0-9]{24})\.\w+$/;
const str = `https://res.cloudinary.com/frivillighet-norge/image/upload/v1501681528/5648f10ae4b09f27e34dd22a.jpg`;
console.log(str.match(regex)[1])