Javascript 带有URL模式集的匹配URL包含正则表达式
我有一个URL,它应该与多个URL模式数组中的一个URL模式匹配Javascript 带有URL模式集的匹配URL包含正则表达式,javascript,node.js,regex,url,Javascript,Node.js,Regex,Url,我有一个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
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'
URLPatternsAR将包含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/[^/]+'
我想将此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/([^/]+)$']
用“^”和“$锚点”包装所有正则表达式。例如,Stackoverflow上的“^PATTERN$”您可以给人们的有用答案以表示感谢,并从所有答案中选择任何一个。