正则表达式和javascript,一些匹配消失!

0 javascript regex pattern-matching

这是代码:

> var reg = new RegExp(" hel.lo ", 'g');
> 
> var str = " helalo helblo helclo heldlo ";
> 
> var mat = str.match(reg);
> 
> alert(mat);
Run Code Online (Sandbox Code Playgroud)

它警告"helalo,helclo",但我希望它是"helalo,helblo,helclo,heldlo".只有他们中的一半匹配,我猜这是因为只计算一次的空间.所以我尝试在处理之前将每个空间加倍,但在某些情况下,这还不够.我正在寻找解释和解决方案.

谢谢

ken*_*ytm 5

  "?helalo?helblo?helclo?heldlo?"
// 11111111------22222222-------
Run Code Online (Sandbox Code Playgroud)

?helalo?匹配时,左边的字符串helblo?... 没有前导空格.但是正则表达式需要一个领先的空间,所以它会跳过去?helclo?.

为避免表达占用空间,请使用前瞻.

var reg = / hel.lo(?= )/g
Run Code Online (Sandbox Code Playgroud)

(或\b用作单词边界.)