繁体   English   中英

使用RegEx数组进行JavaScript字符串测试

[英]JavaScript String test with array of RegEx

我对JavaScript中的RegEx有一些疑问,因为我对RegEx不太擅长。

我有一个字符串,我想将其与某些RegEx表达式数组进行比较。

首先,我尝试了一个RegEx,但它不起作用。 我也想解决这个问题。

function check(str){
var regEx = new RegEx("(users)\/[\w|\W]*");
var result = regEx.test(str);
if(result){
//do something
}
}

它无法正常工作。 如果我通过用户 ,则不匹配。 如果我通过users /users / somestring ,它是匹配的。

如果我将RegEx更改为(usersGroupList)[/ \\ w | \\ W] * ,则它匹配包含字符串用户的任何字符串

fdgdsfgg用户列表/数据

我想匹配,如果字符串是用户或它应该包含用户/某物用户/

而且我还希望该字符串将其与类似的正则表达式数组进行比较。

我想将字符串strusersusers / somethinglistlist / somethinganothermatchanothermatch / something进行比较 如果它与这些表达式中的任何一个匹配,我想做点什么。

我怎样才能做到这一点?

谢谢

然后,您必须将最后一组设为可选。 您可以通过捕获组中的/ something部分并跟随其来实现此目的? 这使得前一个令牌(这里是捕获的组)是可选的。

var regEx = new RegExp("(users)(\/[\w|\W]*)?");

关于制作:

  1. 最后一组可选
  2. 从字符串的开头

像这样:

var regEx = new RegExp("^(users)(\/[\w|\W]*)?");

其他所有情况也是如此,例如list

var regEx = new RegExp("^(list)(\/[\w|\W]*)?");

一站式

var regEx = new RegExp("^(users|list|anothermatch)(\/[\w|\W]*)?");

更通用

var keyw = ["users", "list", "anothermatch"];
var keyws = keyw.join("|"); 
var regEx = new RegExp("^("+keyws+")(\/[\w|\W]*)?");

您尚未将/设为可选。 试试这个

(users)\/?[\w|\W]*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM