如何对放大器进行转义;在JavaScript中

时间:2019-01-31 21:55:02

标签: javascript console escaping

说我有这个字符串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>

谢谢您的帮助

2 个答案:

答案 0 :(得分:3)

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

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 );

但是,如果您有多个实例,则需要具有global replace

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

console.log( str );

答案 1 :(得分:0)

可以通过传递给the string#replace method的正则表达式"java&amp;script"来实现将输入"java&script"转换为&amp;的简单解决方案:

var inputStr="java&amp;script&amp;jj";

/* 
match any occourance of &amp; in the string and replace
with &. Use the gi to cause replacement to happen irrespective
of case (i) and globally across all occurances of &amp; 
in the string (g).
*/
var unescapedStr = inputStr.replace(/&amp;/gi, '&');

console.log(unescapedStr);