2017-03-03 65 views

回答

1
temp = temp.replace(/\^/g, ''); 

一旦你逃脫了脫字符,它就會被取代。

https://jsfiddle.net/ym7tt1L8/

而且請注意,僅僅寫temp.replace(/\^/g, '');不更新您的實際字符串。這就是你必須寫的原因

temp = temp.replace(/\^/g, ''); 
1

在正則表達式中,脫字符號被識別爲特殊字符。它意味着一個字符串的開始。

此外,替換返回的新值,它不執行適當的操作,您需要創建一個新的變量。

對於你的情況,你必須做下列之一:

var temp = "^hall^,^restaurant^"; 
var newString = temp.replace(/\^/g, ''); // Escape the caret 

或者乾脆更換角色,而無需使用正則表達式的所有:

var temp = "^hall^,^restaurant^"; 
while (temp.indexOf('^') >= 0) { 
    temp = temp.replace('^', ''); 
} 

替代版本:

var temp = "^hall^,^restaurant^"; 
var newString = temp.split('^').join(''); 
+0

第二個代碼替換將只替換單個^。不是所有的符號,所以這就是爲什麼需要正則表達式。 – HardCode

+0

我更改了非正則表達式版本以輸出相同的結果。可能毫無意義,但它說明了沒有RegEx的替代方法。 –