2015-03-31 159 views
2

爲什麼這不能取代?替換字符串javascript ....中的所有特殊字符?

代碼:

var str = "fq$team$456$$$$fq$plrs$4789"; 
    if(str.indexOf("$$$$")>=0){ 
     str = str.replace("$$$$","$$"); 
    } 

    // gives fq$team$456$fq$plrs$4789 


    // expected output = fq$team$456$$fq$plrs$4789 
+0

'$'在正則表達式是行尾。您可能必須轉義代碼'$' – Pete 2015-03-31 15:46:34

+1

@Pete在上面的代碼中沒有reg exp。 – epascarello 2015-03-31 15:54:06

回答

4

按照MDN docs$$應該插入單個$。這是$字符被用來形成一些特殊的字符串模式的結果。

+2

aka:'str = str.replace(「$$$$」,「$$$$」);' – epascarello 2015-03-31 15:49:52

+0

這似乎是解決方案。 – 2015-03-31 15:50:56

2

嘗試split/join

var str = "fq$team$456$$$$fq$plrs$4789"; 
 
    if(str.indexOf("$$$$")>=0){ 
 
     str = str.split("$$$$").join("$$"); 
 
    } 
 

 
console.log(str)

2

$$意味着$在替換參數。 MDN

$$插入「$」。

使用

var str = "fq$team$456$$$$fq$plrs$4789"; 
if(str.indexOf("$$$$")>=0){ 
    str = str.replace("$$$$","$$$$"); 
} 
console.log(str); //fq$team$456$$fq$plrs$4789