嗨,如果正则表达式中的一部分匹配,我如何获得整个字符串。 例如,我的网址为https://test-url.com/token-refresh。现在,我正在搜索URL令牌刷新的一部分。但是它仅返回令牌刷新。因此,我可以搜索整个url,但有时url是动态的,需要按部分进行搜索。 这是针对角度jwt blacklistedUrl。
blacklistedRoutes: [
new RegExp('token-refresh')
]
var str = "https://test-url.com/api/v1/token-refresh";
var patt = new RegExp("token-refresh");
var res = patt.exec(str);
alert(res)
答案 0 :(得分:1)
您可以编写一个简短的函数来检查URL是否基于blacklistedRoutes
中的正则表达式被列入黑名单,然后使用它来控制URL的显示(或其他您想使用的其他操作):>
let JWT = {
blacklistedRoutes: [
new RegExp('token-refresh')
]
};
let isBlacklisted = (str) => JWT.blacklistedRoutes.reduce((c, r) => c || r.test(str), false);
let str = [
"https://test-url.com/api/v1/token-refresh",
"https://example.com/should-be-ok"
];
str.map(s =>
console.log(s + (isBlacklisted(s) ? ' is blacklisted' : ' is ok'))
);
答案 1 :(得分:0)
您可以使用exec
来测试正则表达式,而不是使用test
来解决此问题
请找到下面的代码片段以获取解决方案:
var str = "https://test-url.com/api/v1/token-refresh";
var patt = new RegExp("token-refresh");
var res = patt.test(str);
res ? alert(str) : alert('not matching urp param');