我正在使用 Javascript RegEx 来比较字符串是否与标准格式匹配。
我有一个名为 inputName 的变量,它具有以下格式(示例):
input[name='data[product][tool_team]']
我想用 Javascript 的正则表达式实现的是确定字符串是否具有以下内容,但在括号之间包含 _team。
我尝试了以下方法:
var inputName = "input[name='data[product][tool_team]']";
var teamPattern = /\input[name='data[product][[_team]]']/g;
var matches = inputName.match(teamPattern);
console.log(matches);
我只是以我给出的结果作为例子得到空值。 老实说,RegEx 并不是我真正的领域,所以我认为这是错误的。
最佳答案
有几件事:
您需要转义
[
和]
,因为它们在正则表达式中具有特殊含义如果您想要允许任何内容,您需要在
_team
前面添加.*
(或者可能是[^[]*
) ([^[]*
表示“除了[
重复零次或多次)之外的任何内容”
如果您只想知道它是否匹配,例如:
var string = "input[name='data[product][tool_team]']";
var teamPattern = /input\[name='data\[product\]\[[^[]*_team\]'\]/;
console.log(teamPattern.test(string));
例如,如果您需要捕获xyz_team
位:
var string = "input[name='data[product][tool_team]']";
var teamPattern = /input\[name='data\[product\]\[([^[]*_team)\]'\]/;
var match = string.match(teamPattern);
console.log(match ? match[1] : "no match");
关于Javascript 正则表达式包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203278/