我的目标是在输入中显示Sarah O'Connor作为值。我需要转义Sarah O' Connor以显示正确的UTF-8 html字符。

我看到了一些建议替换每个特殊字符的答案。但这肯定不是正确的方法,因为世界各地的人的名字中可能有数百个可能的字符。

我也尝试使用javascripts escape() / unescape()encodeURI() / decodeURI()函数,但是它们只能作为html文本而不是输入值。

请在此处查看jsFiddle:
http://jsfiddle.net/gHHzA/

var div = $("#my-div");
var input = $("input");
var str = "Sarah O'Connor";

div.html(str);   //--> Sarah O'Connor
input.val(str);  //--> Sarah O'Connor

最佳答案

您可以创建一个放置HTML的元素,然后可以使用.text()获得格式化结果,例如:

input.val($("<div>", {html:"Sarah O&#39;Connor"}).text())

07-24 20:22