JS Regex - 替换字符串中的多个实例

时间:2014-10-10 20:47:00

标签: javascript regex replace str-replace

我有这个字符串:

var str = '"testFN, II testLN, II" < test1@test.com>, "testFN, Cal testLN, Cal" < test2@test.com>';

我正在做

str.replace(/(".*?),(.*?")/g, '$1__comma_$2');

用字符串(__ comma_)替换多个逗号(,),仅在&#34;&#34;。

内。

事件虽然我给它/ g它没有替换所有实例。它只替换每个实例的第一个匹配。

实际结果:&#34; testFN__comma_ II testLN,II&#34; &LT; test1@test.com>,&#34; testFN__comma_ testLN,Cal&#34; &LT; test2@test.com> 预期结果:&#34; testFN__comma_ II testLN__comma_ II&#34; &LT; test1@test.com>,&#34; testFN__comma_ Cal testLN__comma_ Cal&#34; &LT; test2@test.com>

你能否提出任何我错过的建议?

1 个答案:

答案 0 :(得分:0)

尝试延迟量词:

(".*?,)(.*?")

但是,由于您没有替换逗号,因此您的替换不会生效!所以我稍后会修改你的正则表达式:

(".*?),(.*?")

<强> Live demo

更新

根据您的新更新,我制作了另一个与前一个完全不同的正则表达式。

str.replace(/(,)(?=[^"]*[^\s]")/g, '__comma_');

<强> Live demo