它应该是Javascript替换不起作用

时间:2009-10-07 09:05:47

标签: javascript regex replace

var src = "http://blah.com/SOMETHING.jpg";
src.replace(/.*([A-Z])\.jpg$/g, "X");

此时,不应该是src:

  

http://blah.com/SOMETHINX.jpg

如果我将match()与相同的正则表达式一起使用,则说它匹配。正则表达式教练还在角色“G”上显示匹配。

3 个答案:

答案 0 :(得分:2)

尝试

src = src.replace(/.*([A-Z])\.jpg$/g, "X");

String#replace不是mutator方法;它返回一个带有修改的新字符串。

编辑:另外,我认为regexp并不是你想要的。它表示“任意数量的任何字符”,后跟一个字符A-Z的捕获组,后跟字符串末尾的“.jpg”。 src变成了“X”。

答案 1 :(得分:1)

替换功能不会改变src。

我认为你想要做的是:

src = src.replace(/.*([A-Z])\.jpg$/g, "X");

答案 2 :(得分:1)

src.replace将替换整个匹配“http://blah.com/SOMETHING.jpg”,而不仅仅是用括号捕获的部分。