繁体   English   中英

正则表达式匹配当前URL中的字符串,包括通配符

[英]Regex to match string in current URL including wild card

使用JavaScript匹配一部分URL并包含通配符的正则表达式是什么?

例如:

匹配所有页面: /pages/*

匹配名为about的页面: /pages/about

匹配所有包含字符串large的/products/*large*/products/*large*

https://jsbin.com/toxemanewe/1/edit?js,console,output

我对您的代码做了一些小的更改:

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

  }

}

我已经评论了更新。

希望能帮助到你。

如您的问题所问,用于您的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]);
  }
}

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM