簡體   English   中英

如果部分匹配正則表達式,則獲取整個字符串

[英]Get whole string if part matches regex

嗨,如果正則表達式中的部分匹配,我如何獲取整個字符串。 例如,我有 url https://test-url.com/token-refresh 現在我正在搜索 url token-refresh 的一部分。 但它只返回令牌刷新。 所以我可以搜索整個 url,但有時 url 是動態的,需要按部分搜索。 這是用於 angular 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)

您可以編寫一個簡短的函數來根據 blacklistedRoutes 中的正則表達式檢查 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')) );

您可以使用test測試正則表達式,而不是使用exec ,以解決此問題請在下面找到解決方案的代碼片段:

 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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM