首页 > 解决方案 > 动态正则表达式匹配

问题描述

我有一些字符串,如下所示:

var resource1 = '/myapi/person/pascal/address/town';
var resource2 = '/myapi/person/john/address/town';
var resource3 = '/myapi/person/messi/address/town';

这是我到目前为止所尝试的:

模式是:

var pattern = '/myapi/person/(.*)/address/town';

这是我到目前为止所尝试的:

var resource1 = '/myapi/person/pascal/address/town';
var resource2 = '/myapi/person/john/address/town';
var resource3 = '/myapi/person/messi/address/town';
var pattern = '/myapi/person/(.*)/address/town';

var pattern = new RegExp(pattern);
if (pattern.test(resource1)){
    console.log('yes');   
}

问题

如何动态使用该模式来检查是否resource1或匹配?resource2resource3pattern

问候。

标签: javascriptregex

解决方案


以下正则表达式应该可以工作:

/\/myapi\/person\/(.*)\/address\/town/

它可以像这样使用:

var string = '/myapi/person/pascal/address/town';
var re = /\/myapi\/person\/(.*)\/address\/town/;
re.test(string); //will return true

我鼓励你在这里看看它是如何工作的: https ://regexr.com/3ri4m


推荐阅读