Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 String.match仅返回第一个匹配,即使带有g标志_Javascript_Regex - Fatal编程技术网

Javascript String.match仅返回第一个匹配,即使带有g标志

Javascript String.match仅返回第一个匹配,即使带有g标志,javascript,regex,Javascript,Regex,我试图用正则表达式解决一个二进制间隙问题,但在使它工作时遇到了一些问题 如果我尝试这样的方法: Number(101001000).toString()匹配(/(1[0]+1)/g) 当我期待[“101”,“1001”]时,它只返回[“101”] 我是做错了什么,还是仅仅用regex无法达到这个结果? 函数二进制间隙(binStr){ 返回( 宾斯特 .分割(“1”) .减少((acc、cv、idx、arr)=>{ if(idx&&idx可以仅使用regex执行此操作,但不匹配终止1,因为它可

我试图用正则表达式解决一个二进制间隙问题,但在使它工作时遇到了一些问题

如果我尝试这样的方法:

Number(101001000).toString()匹配(/(1[0]+1)/g)
当我期待
[“101”,“1001”]
时,它只返回
[“101”]

我是做错了什么,还是仅仅用regex无法达到这个结果?

函数二进制间隙(binStr){
返回(
宾斯特
.分割(“1”)
.减少((acc、cv、idx、arr)=>{

if(idx&&idx可以仅使用regex执行此操作,但不匹配终止1,因为它可能需要成为下一个匹配的一部分

相反,只需要在比赛结束后有一个1,而不需要实际抓住它

如果在输出中仍要包含终止1,则只需相应地映射
匹配结果即可:

console.log(
(101001000).toString()匹配(/10+(?=1)/g).map(m=>m+“1”)

)
您的匹配项重叠。另请参见: