jQuery正则表达式错误匹配

时间:2014-08-27 17:28:42

标签: javascript jquery regex

我在这样的textarea中有一个文本;

[Some Text][2][2]:SomeText

我想先将2更改为1.要执行此操作,请尝试通过以下正则表达式匹配[Some Text][1]

regex = new RegExp("(\\[.*\\]\\[)2(\\])");

并使用此代码替换它;

textarea.val().replace(regex, "$11$2");

然而,我的正则表达式匹配[Some Text][2][2]并将第二个2替换为1.我如何匹配[Some Text][2]并替换前2个。

JSFiddle

1 个答案:

答案 0 :(得分:0)

.*过于贪心,将你的正则表达式改为:

regex = new RegExp("(\\[[^\\]]*\\]\\[)2(\\])");

您也可以使用:

regex = new RegExp("(\\[.*?\\]\\[)2(\\])");

JsFiddle Demo