我有一個字符串,我需要替換所有'
並等其應有的價值Javascript查找並替換一組字符?
我使用
var replace = str.replace(new RegExp("[']", "g"), "'");
要做到這一點,但問題是,它似乎是更換'
每個字符(所以例如,'
成爲'''''
任何幫助嗎?
我有一個字符串,我需要替換所有'
並等其應有的價值Javascript查找並替換一組字符?
我使用
var replace = str.replace(new RegExp("[']", "g"), "'");
要做到這一點,但問題是,它似乎是更換'
每個字符(所以例如,'
成爲'''''
任何幫助嗎?
使用這個:
var str = str.replace(/'/g, "'");
[']
是一個字符類。這意味着大括號內的任何字符。
這就是爲什麼你的/[']/
正則表達式用替換字符串替換'
的每一個字符。
如果你想使用new RegExp
,而不是字面正則表達式:
var str = str.replace(new RegExp(''', 'g'), "'");
這有沒有好處,如果你想在運行時生成正則表達式除外。
這兩個這些似乎產生一個錯誤「未終止的正則表達式字面量」 – Steven
似乎在這裏工作:http://jsfiddle.net/TC5he/ – arnaud576875
取出支架,這使得字符類(裏面的任何字符匹配):
var replace = str.replace(new RegExp("'", "g"), "'");
,甚至更好,用文字:
var replace = str.replace(/'/g, "'");
編輯:請參閱本關於如何逃避HTML:How to unescape html in javascript?
這兩個似乎產生一個錯誤「未終止的正則表達式字面量」 – Steven
@Steven如何你正在使用它? –
而不是使用一堆正則表達式替換爲此,我會做這樣的事情讓瀏覽器爲你解碼:
function HtmlDecode(s) {
var el = document.createElement("div");
el.innerHTML = s;
return el.innerText || el.textContent;
}
+1好主意......儘管你不需要調用delete el;(它在嚴格模式下沒有效果,甚至會引發錯誤)。你可以做'返回el.innerText || el.textContent;' –
感謝您的提示,編輯。 –
錯誤在於使用'[]'。如果你刪除它,它應該工作。或者使用arnaud建議的更緊湊的JS符號。 – xanatos