首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局替换为js

全局替换为js
EN

Stack Overflow用户
提问于 2011-11-11 04:39:24
回答 3查看 231关注 0票数 5

我有以下字符串:

代码语言:javascript
复制
[27564][85938][457438][273][48232]

我想用'‘替换所有的[。我尝试了以下方法,但不起作用:

代码语言:javascript
复制
 var str = '[27564][85938][457438][273][48232]'
 var nChar = '[';
 var re = new RegExp(nChar, 'g')    
 var visList = str.replace(re,'');

我在这里做错了什么?

在此之前,非常感谢您。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-11 04:40:41

您需要转义[,否则它将被解释为character class的开始

代码语言:javascript
复制
var nChar = '\\[';

如果nChar是一个变量(我假设它是一个变量,否则使用RegExp而不是/.../g没有什么意义),那么您可能会发现这个问题很有用:

票数 7
EN

Stack Overflow用户

发布于 2011-11-11 04:41:52

代码语言:javascript
复制
var string = "[27564][85938][457438][273][48232]";
alert(string.replace(/\[/g, '')); //outputs 27564]85938]457438]273]48232]

我对[字符进行了转义,并使用全局标志替换了该字符的所有实例。

票数 1
EN

Stack Overflow用户

发布于 2011-12-01 15:11:36

我今天遇到了这个问题。要求是替换用户输入字符串中所有"c++“。因为"+“在Reg表达式中有意义,所以string.replace失败。所以我为js字符串写了一个多重替换函数。希望这能有所帮助。

代码语言:javascript
复制
String.prototype.mreplace = function (o, n) {
    var off = 0;
    var start = 0;
    var ret = "";
    while(true){
        off = this.indexOf(o, start);
        if (off < 0)
        {
            ret += this.substring(start, this.length);
            break;
        }
        ret += this.substring(start, off) + n;
        start = off + o.length;
    }
    return ret;
}

示例:"ababc".mreplace("a","a--");//返回"a--ba--bc“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8085989

复制
相关文章

相似问题

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