У меня есть три строки:
https://yandex.ru/maps/org/dom_ru/131719887381/
https://yandex.ru/maps/org/dom_ru_interzet/1099188223/
https://yandex.ru/maps/org/domashniy_internet_dom_ru_v_sankt_peterburge/1291097722/
Я написал регулярку которая вроде как работает:
/\/dom_ru(?:|_interzet)\/(\d+)/g
var reggg = /\/dom_ru(?:|_interzet)\/(\d+)/g;
'maps/org/dom_ru/131719887381/'.match(reggg) //=> ['dom_ru/131719887381/']
'maps/org/dom_ru_interzet/1099188223/'.match(reggg) //=> ['dom_ru_interzet/1099188223/']
'maps/org/domashniy_int_dom_ru_v_sp/1291097722/'.match(reggg) //=>null
Мне же необходимо из url циферное значение, все что идет следом за /dom_ru/ или /dom_ru_interzet/, но не включает их.
Пока что накостылял через условие и двойной вызов match:
var str = ["/maps/org/dom_ru/1266454637/";
if(str.match(/\/dom_ru(?:|_interzet)\/(\d+)/g)!==null) {
console.log(str.match(/\/dom_ru(?:|_interzet)\/(\d+)/)[1]) //1266454637
}
Все это работает через группы, не через фулмачю. Как сделать через фулматч? Без проверки? Как укоротить?
песочница тут
https://regex101.com/r/1zuL2U/1/