0

我需要能够确定字符串是否与定义值列表匹配。

假设我有一个已定义的字符串列表,例如

a | activ | blue | lagoon | ex (defind list is much longer and contains approx. 50+ possibilties)

我应该能够匹配以下任何一项;

 a
 a[name]
 activ
 activ[class=somevalue]
 blue
 lagoon[name=somevalue], ...e.t.c

是否可以通过正则表达式确定传递的字符串是否包含在定义的列表中?

谢谢...

4

3 回答 3

1

只要字符串始终存储为:(value | value值和管道之间有一个空格),您就可以轻松地执行以下操作:

str.match(new RegExp(values.split(' | ').join('|'))

如果您需要计算精确的单词,您可以使用values.split(' | ').join('\\b|\\b')

于 2013-04-29T20:37:43.173 回答
0
^(a|activ|blue|lagoon)(?:\[(\w+)=?(\w*)\])?$

对于“activ[class=something]”

group 1 = activ
group 2 = class
group 3 = something
于 2013-04-29T20:45:29.867 回答
0

是你要找的吗?:

/^(?:a|activ|blue|lagoon)\b(\[(?:name|class)(?:=somevalue)?])?$/.test(yourstring);
于 2013-04-29T21:13:51.323 回答