var temp = "^hall^,^restaurant^";
temp.replace(/^/g, '');
console.log(temp);
這不能替代從字符串^符號下面的代碼。這怎麼能工作?
var temp = "^hall^,^restaurant^";
temp.replace(/^/g, '');
console.log(temp);
這不能替代從字符串^符號下面的代碼。這怎麼能工作?
temp = temp.replace(/\^/g, '');
一旦你逃脫了脫字符,它就會被取代。
https://jsfiddle.net/ym7tt1L8/
而且請注意,僅僅寫temp.replace(/\^/g, '');
不更新您的實際字符串。這就是你必須寫的原因
temp = temp.replace(/\^/g, '');
在正則表達式中,脫字符號被識別爲特殊字符。它意味着一個字符串的開始。
此外,替換返回的新值,它不執行適當的操作,您需要創建一個新的變量。
對於你的情況,你必須做下列之一:
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('');
第二個代碼替換將只替換單個^。不是所有的符號,所以這就是爲什麼需要正則表達式。 – HardCode
我更改了非正則表達式版本以輸出相同的結果。可能毫無意義,但它說明了沒有RegEx的替代方法。 –
嘗試轉義'\ ^' – cyrix
使用轉義'/ \ ^/g' –