Javascript unescape似乎不起作用

时间:2014-11-12 13:35:40

标签: javascript html razor

我有一个简单的字符串

Company's

现在我提交了一些在提交表单时运行的javascript

var jsCompanyName = '@Model.Name';
var unescapedCompanyName = unescape(jsCompanyName);
$('.selector-input').val(unescapedCompanyName);
$('.selector-input-id').val('@Model.Id');

考虑到调试器,即使在unescape函数之后,我的var unescapedCompanyName仍然是“Company' s”,是否有人知道为什么不删除'并将其替换为“

2 个答案:

答案 0 :(得分:5)

unescape()函数与HTML语法无关。它用于处理URL语法中的转义,这是完全不同的事情。 (即使出于预期目的,它也被弃用。)

没有内置函数来处理HTML转义。但是,在Web浏览器中运行的代码可以执行以下操作:

function html_unescape(s) {
  var div = document.createElement("div");
  div.innerHTML = s;
  return div.textContent || div.innerText; // IE is different
}

答案 1 :(得分:3)

如果您确实需要,可以使用JQUERY轻松完成此操作:

function htmlDecode(value) {
    return $('<div/>').html(value).text();
}

var str = 'Company&#39;s';
console.log(htmlDecode(str)); // Company's 

JSFIDDLE