2013-03-29 70 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個函數具有相同的名稱..如果這是你的實際代碼可以使你一些問題。