1

我有一个像“|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|”这样的字符串......现在我只想删除字符“|” 并将它们替换为“/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

4 回答 4

7

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

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

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

小提琴

作为一个可调用函数,它将是:

function removeSeperator(str){
    return str.replace(/\|/g, "\n");
}
于 2013-03-29T07:51:52.940 回答
1

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

function removeSeperator(str){
    str = str.replace(/\|/g, "\n");
    return str;
}
于 2013-03-29T07:54:47.937 回答
1

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

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

    window.alert(replaceString(theString));

输出看起来像 -

啊啊啊啊啊啊

啊啊啊啊

啊啊啊啊啊

大致上,这就是您所期望的。希望这可以帮助!

于 2013-03-29T08:03:24.310 回答
1

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

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

小提琴

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

于 2013-03-29T08:04:24.030 回答