我有一个字符串,我需要替换所有'
并等其应有的价值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