Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Regex_Destructuring - Fatal编程技术网

JavaScript中全局正则表达式匹配的干净数组分解

JavaScript中全局正则表达式匹配的干净数组分解,javascript,arrays,regex,destructuring,Javascript,Arrays,Regex,Destructuring,这是出于好奇,但是否有一种干净的方法可以循环全局正则表达式的匹配项并在一行中分解每个匹配项?我能想到的最干净的方法是: let regex=/(a)(b)?(c*)/g, str='CABCCAABACB', 匹配,a,其他捕获; while(([match,a,…otherCaptures]=regex.exec(str)| |[]).length){ //做事 日志(匹配、a、其他捕获); }为什么不稍后分解一行: let part; while(part = regex.exec(

这是出于好奇,但是否有一种干净的方法可以循环全局正则表达式的匹配项并在一行中分解每个匹配项?我能想到的最干净的方法是:

let regex=/(a)(b)?(c*)/g,
str='CABCCAABACB',
匹配,a,其他捕获;
while(([match,a,…otherCaptures]=regex.exec(str)| |[]).length){
//做事
日志(匹配、a、其他捕获);

}
为什么不稍后分解一行:

 let part; 
 while(part = regex.exec(str)) {
   const [match, a, ...otherCaptures] = part;
   //...
 }
使用for循环,
部件
也可以是局部范围:

 for(let part; part = regex.exec(str); ) {
   const [match, a, ...otherCaptures] = part;
   //...
 }

为什么不稍后分解一行:

 let part; 
 while(part = regex.exec(str)) {
   const [match, a, ...otherCaptures] = part;
   //...
 }
使用for循环,
部件
也可以是局部范围:

 for(let part; part = regex.exec(str); ) {
   const [match, a, ...otherCaptures] = part;
   //...
 }

为什么不在循环体内部解构呢
while(m=regex.exec(str)){const[match,a,…otherCaptures]=m;…}
我投票结束这个问题,因为它应该在codereview.stackexchange上。com@DarrenSweeney我不知道codereview。。。谢谢@易卜拉欣/哈姆斯的《伟大的思想相似》或《德雷·杜姆·艾因·格丹克》;)@Jonaswillms
我能想到的最干净的方法是:
是什么促使我这么做的,它基本上是说
有没有更好的方法,或者,你能回顾一下这一点吗?
-好的一句话,解释非常容易被误解为什么不在循环体内部分解结构
while(m=regex.exec(str)){const[match,a,…otherCaptures]=m;…}
我投票结束这个问题,因为它应该在codereview.stackexchange上。com@DarrenSweeney我不知道codereview。。。谢谢@易卜拉欣/哈姆斯的《伟大的思想相似》或《德雷·杜姆·艾因·格丹克》;)@Jonaswillms
我能想到的最干净的方法是:
是促使我这么做的原因,它基本上是说
有没有更好的方法,或者,你能回顾一下这一点吗?
-好的一句话,解释很容易被误解这似乎是共识。我会在6分钟后把它标记为答案。不过,我还是很好奇,是在while语句中还是在for循环中有这样做的方法。@dfoverdex在
while
语句中有这样做的方法,您已经使用过了。for循环中有一个输入错误。在
regex
之后缺少一个句点。这似乎是共识。我会在6分钟后把它标记为答案。不过,我还是很好奇,是在while语句中还是在for循环中有这样做的方法。@dfoverdex在
while
语句中有这样做的方法,您已经使用过了。for循环中有一个输入错误。在
regex
之后缺少一个句点。