У меня есть URL, который должен совпадать с одним из шаблона URL из массива нескольких шаблонов URL
var URLPatternsArr = ['https://m.abc.com/collections/([^/]+)','https://m.abc.com/store/([^/]+)/','https://m.abc.com/collections/([^/]+)/item/([^/]+)'] url = 'https://m.abc.com/collections/tagline-silk-mill/item/green-embroidered-faux-georgette-salwar-anarkali-salwar-kameez--42cba667-256a-4f95-8912-62f3d03a128f'
URLPatternsArr будет содержать n номеров различных URL с регулярным выражением. я буду повторять этот массив и проверять точное совпадение. если я использую функцию соответствия javascript
Object.keys(URLPatternsArr).forEach(function(el) { console.log("-------"); console.log("matching with "+URLPatternsArr[el]); if(url.match(URLPatternsArr[el]) != null) { console.log("matched with "+URLPatternsArr[el]); } });
URL совпадает с 'https://m.abc.com/collections/([^/]+)' и 'https://m.abc.com/collections/([^/]+)/item/([^/]+)',
'https://m.abc.com/collections/([^/]+)'
'https://m.abc.com/collections/([^/]+)/item/([^/]+)'
Я хочу сопоставить этот URL с 'https://m.abc.com/collections/([^/]+)/item/([^/]+)', так как этот шаблон содержит / item / между двумя регулярными выражениями и URL содержит одно и то же. Какой будет хороший способ найти этот тип соответствия в javascript или Node.js?
Просто измените ваши шаблоны для полного соответствия:
var URLPatternsArr = ['^https://m.abc.com/collections/([^/]+)$','^https://m.abc.com/store/([^/]+)/$','^https://m.abc.com/collections/([^/]+)/item/([^/]+)$']