生成正则表达式以与网址匹配

时间:2019-04-25 06:32:57

标签: javascript regex

我有一个字符串希望那些产品中心供应商正确匹配其各自的位置,并且它们之间的数字必须为数字,但是数字可以不同。

pattern: /products/8236/hubs/1/vendor
url="https://d3skctyxg9sfpd.cloudfront.net/sadassdsad/products/8236/hubs/1/vendor"
    this.tests = "products/8236/hubs/1/vendor"; 
    var fields = this.tests.split('_qa_current');
    console.log(fields, "fielding values fetched");
    /products/.test(fields);
    console.log(/products/.test(this.tests), "url getting");
    /^products\[0-9]\\hubs\[0-9]\\vendors$/.test(fields[1]);

2 个答案:

答案 0 :(得分:1)

正则表达式:/-\/products\/\d+\/hubs\/\d+\/vendor/g

您可以将数字替换为\d+,表示此位置可以有一个或多个数字。

这里是尝试该模式并亲自查看的网站:https://regexr.com/。 屏幕底部也有解释,以帮助您更好地了解规则的作用。

答案 1 :(得分:0)

这应该是您的正则表达式

^\/products\/\d+\/hubs\/\d+\/vendor$

在正则表达式中不能正确转义斜线。

代码

this.tests = "https://d3skctyxg9sfpd.cloudfront.net/milkbasket_qa_current/products/8236/hubs/1/vendor"; 
var fields = this.tests.split('_qa_current');
console.log(fields, "fielding values fetched");
/products/.test(fields);
console.log(/products/.test(this.tests), "url getting");
/^\/products\/\d+\/hubs\/\d+\/vendor$/.test(fields[1]);