首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在Chrome或IE中javascript替换全局标志不起作用,我该如何解决这个问题?

为什么在Chrome或IE中javascript替换全局标志不起作用,我该如何解决这个问题?
EN

Stack Overflow用户
提问于 2011-02-13 08:01:09
回答 1查看 11.8K关注 0票数 17

根据String.prototype.replace() page on MDN的说法,我应该能够很容易地替换多个模式

代码语言:javascript
复制
str.replace('what to replace', 'replace with', 'flags')

并将标志设置为'g'

它在Firefox3.6中运行完美。但在Chrome和IE8中,它只取代了第一个'what to replace'

我可以使用

代码语言:javascript
复制
str.replace(/what to replace/gi, 'replace with')

语法。但是我将'what to replace'从数组中提取出来,这使得在该语法中添加标志变得很困难。

这是我正在尝试使用的代码。如何修改它以在Chrome和Firefox中工作?

代码语言:javascript
复制
function generateQuestion()
{
    //alert('variable length: '+variableList.length);
    for(i=0;i<variableList.length;i++)
    {
        variable = variableList[i];
        rep = replacementList[i];
        flags = "gi";
        questionText = questionText.replace(variable, rep, flags);
    }
}

为什么我要费心去修改它呢?Chrome不应该像链接中描述的那样评估JavaScript吗?

EN

回答 1

Stack Overflow用户

发布于 2011-02-13 08:07:12

似乎webkit的string.replace实现可能没有第三个参数,因为对我来说,'foo'.replace('o','i','g')会导致fio

但是,以下方法似乎可以正常工作:

代码语言:javascript
复制
'foo'.replace(/o/gi,'i')

另一种选择是:

代码语言:javascript
复制
'foo'.replace(new RegExp('o', 'gi'),'i')
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4981501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档