使用JavaScript匹配部分网址并使用通配符的正则表达式是什么?
例如:
匹配所有网页:/pages/*
匹配名为about /pages/about
匹配包含字符串large的所有产品:/products/*large*
答案 0 :(得分:2)
我对您的代码进行了一些小改动:
var patterns = [
'about',
'checkout',
'contact'
];
var str = 'https://myurl.com/page/about/';
for (i=0; i<patterns.length; i++) {
if ((new RegExp(patterns[i])).test(str)) {
//----^^^^^^^^^^^^^^^^^^^^^^^^^ look here how to instantiate the regex
console.log('matched pattern: ' + patterns[i]);
//----------------------------------^^^ look here plus sign instead comma
}
}
我评论了这些更新。
希望它有所帮助。
答案 1 :(得分:1)
正如您的问题所要求的那样,用于3个示例的正则表达式是: -
/ pages / * - 在'/ pages /'
之后使用。*/\/pages\/.*/.test(str);
/ pages / about - 完全匹配'/ pages / about'
/\/pages\/about/.test(str);
/ products / * large * - 匹配'/ products /'然后包含'large'
/\/products\/.*(?:large).*/.test(str);
并在您的示例中使用,如
var patterns = [
'/pages/.*',
'/pages/about',
'/products/.*(?:large).*'
];
for (i=0; i<patterns.length; i++) {
if ((new RegExp(patterns[i])).test(window.location.href)) {
console.log('matched pattern ' + patterns[i]);
}
}