这是代码:

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


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

谢谢

最佳答案

  "␣helalo␣helblo␣helclo␣heldlo␣"
// 11111111------22222222-------


匹配␣helalo␣时,左侧的字符串为helblo␣...,前导空格。但是正则表达式需要一个前导空格,因此它会跳到␣helclo␣

为避免表情占用空间,请提前使用。

var reg = / hel.lo(?= )/g


(或使用\b作为单词边界。)

09-16 09:52