这是代码:
> 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
作为单词边界。)