我正在使用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)
这也没有全局替换配置文件路径。
任何帮助将不胜感激。
答案 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中全局替换。