删除字符

时间:2013-03-29 07:50:12

标签: javascript string

我有一个像“| aaaaaaaaaaaaaaa | aaaaaaaaaa | aaaaaaaaaaaaa”的字符串......现在我只想删除字符“|”并用“/ n”替换它们。

我尝试了这些失败:

function removeSeperator(str){
str = str.replace('|', "\n");
return str;}

function removeSeperator(str){
var rs="";
var i = 0;

for(i=0;i<str.trim().length;i++){
    if(str[i]=="|"){
        rs += str.substring(0, i) + "/n";
        str = str.substring(i+1);
    }
}

return rs;}

我必须在纯javascript上执行此操作,不允许使用jquery。

4 个答案:

答案 0 :(得分:7)

要替换多个字符,您需要使用全局修饰符的正则表达式:

var a = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";

var b = a.replace(/\|/g, "\n");

FIDDLE

作为可调用的函数:

function removeSeperator(str){
    return str.replace(/\|/g, "\n");
}

答案 1 :(得分:1)

您可以创建正则表达式来执行替换。

function removeSeperator(str){
    str = str.replace(/\|/g, "\n");
    return str;
}

答案 2 :(得分:1)

问题是javascript replace方法支持单数值,例如'|'只会替换一次角色。另一方面,您可以使用正则表达式,例如“/ \ | / g”,它将替换所有出现的“|”用一条新线。实际上,您的代码看起来像这样 -

    function replaceString ( str ) {
        cleanedString = str.replace(/\|/g, "\n");
        return cleanedString;
    }
    var theString = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";

    window.alert(replaceString(theString));

输出看起来像 -

aaaaaaaaaaaaaa

AAAAAAAAA

AAAAAAAAAAAA

近似值,是您所期待的。希望这有帮助!

答案 3 :(得分:1)

你只需要一个正则表达式:

function removeSeperator(str){
    str = str.replace(/\|/g,'\n');
    return str;
}

FIDDLE

简单替换仅适用于第一个条目。 还有2个具有相同名称的函数..如果这是您的实际代码,可能会给您带来一些问题。