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

时间:2017-06-28 06:17:08

标签: regex

以下是我的代码

/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"结束,则返回true。或" oldplan"或" specplan"

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

2 个答案:

答案 0 :(得分:1)

使用alternation group

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

请参阅regex demo

模式详情

  • config\/info\/ - 文字config/info/子字符串
  • (?:new|old|spec) - 匹配任何一个子字符串的non-capturing group(其中|分隔备选方案):newoldspec < / LI>
  • plan - 文字plan子字符串

答案 1 :(得分:1)

这将是你的赌注

  <c:forEach var = "i" begin = "0" end = "${averageReview}">
     <span class="glyphicon glyphicon-star"></span>
  </c:forEach>

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

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