这里有一个完整的例子
https://stackblitz.com/edit/hello-angular-6-decode-special
角度6示例
link = 'http://myapp.com/?query=string&filter=1&sort=desc';
newLink = '';
constructor() {
// I can't use a script tag in this example
this.newLink = this.decodeEntities(this.link);
}
decodeEntities(str) {
// this prevents any overhead from creating the object each time
const element = document.createElement('div');
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
var decodeEntities = (function() {
// this prevents any overhead from creating the object each time
var element = document.createElement('div');
function decodeHTMLEntities (str) {
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
return decodeHTMLEntities;
})();
// I can't use a script tag in this example
var text = decodeEntities('http://myapp.com/?query=string&filter=1&sort=desc');
document.write(text);