JavaScript替换函数与全局集不适用于firefox版本14
我正在使用replace函数全局替换用户的配置文件路径JavaScript替换函数与全局集不适用于firefox版本14,javascript,jquery,regex,replace,replacewith,Javascript,Jquery,Regex,Replace,Replacewith,我正在使用replace函数全局替换用户的配置文件路径 user.profile\u路径的值类似于http://mysite/user/profile/XXXXXX 代码如下所示: .replace(/{:profile_path}/g,user.profile_path) 它在IE、chrome和最新的Firefox浏览器中运行良好。但当我在Firefox版本14中尝试同样的功能时,替换功能不起作用。我搜索发现,并不是所有的浏览器都支持用“g”替换,这不是web标准。然后,我尝试为相同的对象
user.profile\u路径的值类似于http://mysite/user/profile/XXXXXX
代码如下所示:
.replace(/{:profile_path}/g,user.profile_path)
它在IE、chrome和最新的Firefox浏览器中运行良好。但当我在Firefox版本14中尝试同样的功能时,替换功能不起作用。我搜索发现,并不是所有的浏览器都支持用“g”替换,这不是web标准。然后,我尝试为相同的对象提供正则表达式,如:
var regProfPath = new RegExp("{:profile_path}","g");
.replace(regProfPath,user.profile_path)
这也没有全局替换配置文件路径
任何帮助都将不胜感激。不确定您要在多大范围内更换此设备;但是,假设您要将其替换的页面上的HTML内容位于DIV
中,并使用class.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中全局替换,你可能要处理一个大的多行字符串。你只是想覆盖http://mysite/user/profile/XXXXXX
使用{:profile\u path}
?是的,我的html中没有几个地方需要替换{:profile\u path}使用正确的概要文件路径。实际上,相同的名称可以正常工作,因为我已经为名称容器提供了标题,它具有类似{:display_name}的模式,并且被正确替换了两次。。。只有{:profile\u path}模式没有被替换,而且我没有任何线索,因为两者都使用相同的逻辑。我想你会想逃离花括号\{:profile\u path\}
对不起,你提到要逃离哪里了?在第一个选项ie中,替换(/{:profile_path}/g,user.profile_path)或在新的RegExp()中??