JavaScript 字符串测试与正则表达式数组

JavaScript String test with array of RegEx

本文关键字:正则表达式 数组 测试 字符串 JavaScript      更新时间:2023-09-26

我对JavaScript中的正则表达式有一些怀疑,因为我在正则表达式中并不擅长。

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

首先,我尝试了一个正则表达式,但它不起作用。我也想解决这个问题。

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

它无法正常工作。如果我通过用户,它不匹配。如果我传递用户/或用户/某个字符串,它是匹配的。

如果我将正则表达式更改为(用户组列表([/''w|''W]*,则它与包含字符串用户的任何字符串匹配

FDGDSFGGuserslist/data

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

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

我想将字符串 str 与用户、用户/某物、列表、列表/某物、另一个匹配另一个匹配/某物进行比较。 如果它与这些表达式中的任何一个匹配,我想做点什么。

我该怎么做?

谢谢

然后,您必须将最后一个组设置为可选。为此,您可以捕获组中的/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]*