replaceAll javascript

时间:2012-11-07 19:00:52

标签: javascript replace

我有这个问题 我很想用àccc替换像àòùèì这样的所有字符......

我有这个原型可行:

String.prototype.ReplaceAll = function(stringToFind,stringToReplace){
    var temp = this;
    var index = temp.indexOf(stringToFind);
        while(index != -1){
            temp = temp.replace(stringToFind,stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    };

现在我想使用名为Clean的函数

来使用这个原型
function Clean(temp){
temp.ReplaceAll("è","è");
temp.ReplaceAll("à","à");
temp.ReplaceAll("ì","ì");
temp.ReplaceAll("ò","ò");
temp.ReplaceAll("ù","ù");
temp.ReplaceAll("é","&eacuta;");
return temp;
}

现在我想使用我的功能:

var name= document.getElementById("name").value;
var nomePul=Clean(name);

为什么这不起作用?有什么问题?

在这种情况下它可以工作(没有我的功能干净,所以我认为问题就在那里)

var nomePul=nome.ReplaceAll("è","è");

有人可以帮助我吗?

6 个答案:

答案 0 :(得分:3)

使用以下内容:

function Clean(temp){
temp=temp.ReplaceAll("è","è");
temp=temp.ReplaceAll("à","à");
temp=temp.ReplaceAll("ì","ì");
temp=temp.ReplaceAll("ò","ò");
temp=temp.ReplaceAll("ù","ù");
temp=temp.ReplaceAll("é","&eacuta;");
return temp;
}

您没有分配值

答案 1 :(得分:2)

这是replaceAll的另一个实现。希望它可以帮到某人。

    String.prototype.replaceAll = function (stringToFind, stringToReplace) {
        if (stringToFind === stringToReplace) return this;
        var temp = this;
        var index = temp.indexOf(stringToFind);
        while (index != -1) {
            temp = temp.replace(stringToFind, stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    };

答案 2 :(得分:1)

ReplaceAll()返回一个字符串。所以你应该做

temp = temp.ReplaceAll("è","è");
在Clean()函数中

答案 3 :(得分:1)

ReplaceAll函数不会改变字符串。它返回一个新字符串。这意味着您需要分配它,如下所示:

function Clean(temp){
    temp = temp.ReplaceAll("è","è");
    temp = temp.ReplaceAll("à","à");
    temp = temp.ReplaceAll("ì","ì");
    temp = temp.ReplaceAll("ò","ò");
    temp = temp.ReplaceAll("ù","ù");
    temp = temp.ReplaceAll("é","&eacuta;");
    return temp;
}

请注意,原型方法可以链接,因此如果您这样做,可能会重复性稍差:

function Clean(temp){
    return temp.ReplaceAll("è","è")
        .ReplaceAll("à","à")
        .ReplaceAll("ì","ì")
        .ReplaceAll("ò","ò")
        .ReplaceAll("ù","ù")
        .ReplaceAll("é","&eacuta;");
}

如果您愿意,可以使用Javascript中的全局替换的典型方式,因此您不需要使用自定义ReplaceAll原型函数。

    return temp.replace(/è/g,"è")
        .replace(/à/g,"à")
        .replace(/ì/g,"ì")
        .replace(/ò/g,"ò")
        .replace(/ù/g,"ù")
        .replace(/é/g,"&eacuta;");

答案 4 :(得分:0)

你可以在javascript中以两种方式应用它。

1)使用替换的字符串拆分并连接字符串数组:

  return temp.split("è").join("è")
        .split("à").join("à")
        .split("ì").join("ì")
        .split("ò").join("ò")
        .split("ù").join("ù")
        .split("é").join("&eacuta;");

2)使用javascript本身内置的全局替换(上面指定为Peter

return temp.replace(/è/g,"è")
        .replace(/à/g,"à")
        .replace(/ì/g,"ì")
        .replace(/ò/g,"ò")
        .replace(/ù/g,"ù")
        .replace(/é/g,"&eacuta;");

答案 5 :(得分:0)

尝试使用以下代码替换所有代码。您可以使用此代码进行操作。

var str = "Test abc test test abc test test test abc test test abc";
str = str.split('abc').join('');
alert(str);