使用全局集的JavaScript替换函数不适用于firefox版本14

时间:2014-05-08 08:17:01

标签: javascript jquery regex replace replacewith

我正在使用replace函数来全局替换用户的配置文件路径。

user.profile_path的值类似于http://mysite/user/profile/XXXXXX

代码如下:

.replace(/{:profile_path}/g,user.profile_path)

它在IE和Chrome以及最新的Firefox浏览器中运行良好。但是当我在Firefox版本14中尝试相同时,替换功能无效。我搜索并发现给予" g" for replace不是web标准,因为并非所有浏览器都支持此标准。然后我尝试给出正则表达式,如:

var regProfPath = new RegExp("{:profile_path}","g");
.replace(regProfPath,user.profile_path)

这也没有全局替换配置文件路径。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

不确定全局如何替换它;但是暂时假设您想要替换它的页面上的HTML内容位于DIV.content中,您可以使用:

var user = {},
    content = $('.content').html();

user.profile_path = "http:\/\/mysite\/user\/profile\/XXXXXX";

$('.content').html(content.replace(/\{\:profile_path\}/gm, user.profile_path));

专门在FF 14中测试过并且有效。看起来很可能是}的逃脱。即使我添加了m(多行)修饰符,我也认为没有效果;只是把它放入,因为我认为你可能正在处理一个大的多行字符串,如果你在字符串化的HTML中全局替换。