说我有这个字符串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&script";
var str_esc=escape(str);
document.write(str_esc + "<br>")
document.write(unescape(str_esc))
</script>
</body>
</html>
谢谢您的帮助
答案 0 :(得分:3)
您可以使用将字符串放入文本区域的函数解码该实体,然后从中提取值,如下所示:
function htmlEntityDecode(str){
var txt = document.createElement('textarea');
txt.innerHTML = str;
return txt.value;
}
var str = htmlEntityDecode("java&script");
console.log( str );
或更简单的是,如果真的只是这种情况,为什么不对它使用简单的.replace()
方法呢?
var str = 'java&script';
str = str.replace('&', '&');
console.log( str );
但是,如果您有多个实例,则需要具有global replace:
var str = 'java & script and script & java';
str = str.replace(/&/g, '&');
console.log( str );
答案 1 :(得分:0)
可以通过传递给the string#replace
method的正则表达式"java&script"
来实现将输入"java&script"
转换为&
的简单解决方案:
var inputStr="java&script&jj";
/*
match any occourance of & in the string and replace
with &. Use the gi to cause replacement to happen irrespective
of case (i) and globally across all occurances of &
in the string (g).
*/
var unescapedStr = inputStr.replace(/&/gi, '&');
console.log(unescapedStr);