我需要能够确定字符串是否与定义的值列表匹配。
假设我有一个已定义的字符串列表,例如
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
是否可以通过正则表达式来确定传递的字符串是否包含在定义的列表中?
感谢...
答案 0 :(得分:1)
只要字符串始终存储为:value | value
(在值和管道之间有一个空格),您可以轻松地执行:
str.match(new RegExp(values.split(' | ').join('|'))
如果您需要数学确切的单词,可以使用values.split(' | ').join('\\b|\\b')
答案 1 :(得分:0)
^(a|activ|blue|lagoon)(?:\[(\w+)=?(\w*)\])?$
对于“activ [class = something]”
group 1 = activ
group 2 = class
group 3 = something
答案 2 :(得分:0)
这是你在找什么?:
/^(?:a|activ|blue|lagoon)\b(\[(?:name|class)(?:=somevalue)?])?$/.test(yourstring);