首页 > 解决方案 > 如何逃脱 amp; 在 JavaScript 中

问题描述

说我有这个字符串java&script,我怎么能把它转换成java&script

在 Google Chrome 的控制台中,这不起作用

var str="java&script";
var str_esc=escape(str);
var str_unc = unescape(str_esc)
console.log(str_esc)
console.log(str_unc)

但这似乎工作得很好

<!DOCTYPE html>
<html>
<body>

<script>

var str="java&amp;script";
var str_esc=escape(str);
document.write(str_esc + "<br>")
document.write(unescape(str_esc))

</script>

</body>
</html>

谢谢您的帮助

标签: javascriptconsoleescaping

解决方案


您可以使用将字符串放入文本区域的函数解码实体,然后从中提取值,如下所示:

function htmlEntityDecode(str){
    var txt = document.createElement('textarea');
    txt.innerHTML = str;
    
    return txt.value;
}

var str = htmlEntityDecode("java&amp;script");

console.log( str );

或者更简单,如果真的只是那种情况,为什么不直接用简单的.replace()方法呢?

var str = 'java&amp;script';
str = str.replace('&amp;', '&');

console.log( str );

但是,如果您有多个实例,则需要进行全局替换

var str = 'java &amp; script and script &amp; java';
str = str.replace(/&amp;/g, '&');

console.log( str );


推荐阅读