如何使用正则表达式测试 url 字符串



下面是我的代码

/config/info/newplan/.test(string)

当在字符串中找到/config/info/newplan/时,它将返回 true。

但是,我想在同一时间测试不同的条件,如下所示

/config/info/newplan/.test(string) || /config/info/oldplan/.test(string) || /config/info/specplan/.test(string)

如果字符串以"newplan"或"oldplan"或"specplan"结尾,则返回true。

我的问题是如何制作更好的代码,而不是写"/config/\info/\xxxx\"这么多次?

使用交替组

/config/info/(?:new|old|spec)plan/.test(string)
^^^^^^^^^^^^^^^ 

请参阅正则表达式演示。

图案详情

  • config/info/- 文本config/info/子字符串
  • (?:new|old|spec)- 与任何一个子字符串匹配的非捕获组(其中|分隔替代项):newoldspec
  • plan- 文本plan子字符串

这将是你的赌注

config/info/(newplan|oldplan|specplan)/
OR
config/info/(newplan|oldplan|specplan)/.test(string)

请参阅[https://regex101.com/r/NyP1HP/1]中的示例,因为它不允许其他可能性,例如:

/config/info/new1plan/
/config/info/newoldplan/
/config/info/specplan1/

最新更新