2013-03-29 39 views
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是不允许的。

回答

7

来替代多个字符,则需要与全球改性剂正则表达式:

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

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

FIDDLE

作为可调用的函数,这将是:

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

它救了我!!谢谢:D – giggles2710

1

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

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

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

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

    window.alert(replaceString(theString)); 

输出看起来像 -

aaaaaaaaaaaaaa

AAAAAAAAA

AAAAAAAAAAAA

其中在近似,是什么你在期待。希望这可以帮助!

1

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

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

FIDDLE

简单的更换只适用于第一个条目。 也有2个函数具有相同的名称..如果这是你的实际代码可以使你一些问题。