Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式:如何避免捕获组变成;未定义的“;?_Javascript_Regex_Capturing Group - Fatal编程技术网

Javascript正则表达式:如何避免捕获组变成;未定义的“;?

Javascript正则表达式:如何避免捕获组变成;未定义的“;?,javascript,regex,capturing-group,Javascript,Regex,Capturing Group,如果我想捕获圆括号或方括号中的文本,并使用此正则表达式: \[(.+)\]|\((.+)\) 我得到了示例“[test]”的结果“test”和“undefined”以及“(test)”的结果“undefined”和“test”。 我如何才能获得唯一的“测试”结果 (这个正则表达式只是一个例子,我的实际正则表达式更复杂,但有着相同的问题。)如果捕获的特定组号不重要,只是它们包含的文本,我认为最简单的事情是在之后过滤匹配项以删除未定义的组: for(常量匹配'[foo](bar)'.matchA

如果我想捕获圆括号或方括号中的文本,并使用此正则表达式:

\[(.+)\]|\((.+)\)
我得到了示例“[test]”的结果“test”和“undefined”以及“(test)”的结果“undefined”和“test”。 我如何才能获得唯一的“测试”结果


(这个正则表达式只是一个例子,我的实际正则表达式更复杂,但有着相同的问题。)

如果捕获的特定组号不重要,只是它们包含的文本,我认为最简单的事情是在之后过滤匹配项以删除未定义的组:

for(常量匹配'[foo](bar)'.matchAll(/\[(.+)\]\\(.+)\)/g)){
常量[,text]=match.filter(m=>m!==未定义);
console.log(文本);

}
-命名捕获组(仅限2018+年!),或后期操作。如果没有分支重置功能,您所能做的就是从结果中删除未定义的值。