gpt4 book ai didi

javascript - 所有特殊字符代码均未使用 Domsanitizer 转换为相应的符号

转载 作者:行者123 更新时间:2023-11-30 19:44:03 24 4
gpt4 key购买 nike

我在字符串 Ex: "Test'Name"中有撇号 (') 代码,我使用 Domsanitizer 对其进行清理以将 ' 转换为撇号。但是,如果我有双引号代码 ("),它不会被转换为相应的符号。不仅如此,(&) 也不会从代码 (&) 转换为符号。下面是我到目前为止编写的代码.

关于从代码到符号的转换,我做的事情是否正确?

let txt = 'Test"Name';
let txt2 = 'Test'Name';
txt = this.sanitizer.sanitize( SecurityContext.HTML, txt );
txt2 = this.sanitizer.sanitize( SecurityContext.HTML, txt2 );

const ul = this.renderer.createElement('ul');
const li = this.renderer.createElement('li');
const li2 = this.renderer.createElement('li');
const text = this.renderer.createText(txt);
const text2 = this.renderer.createText(txt2);

this.renderer.appendChild(li, text);
this.renderer.appendChild(li2, text2);
this.renderer.appendChild(ul, li);
this.renderer.appendChild(ul, li2);
this.renderer.appendChild(this.el.nativeElement, ul);

请找到Stackblitz这里

问题 1:某些代码未转换为相应的符号

问题 2:如果我有一些像 é 这样的法语字符,那么它会被转换为代码,而不是显示相同的字符(也更新了 stackblitz)

最佳答案

在您的情况下, sanitizer 会将值转换为在浏览器 DOM 中安全使用。

因此您需要将转换后的值分配给 innerHTML(而不是文本节点)。

const ul = this.renderer.createElement('ul');
const li = this.renderer.createElement('li');
const li2 = this.renderer.createElement('li');
li.innerHTML = txt; // <- inner html
li2.innerHTML = txt2; // <- inner html

this.renderer.appendChild(ul, li);
this.renderer.appendChild(ul, li2);
this.renderer.appendChild(this.el.nativeElement, ul);

关于javascript - 所有特殊字符代码均未使用 Domsanitizer 转换为相应的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55100952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com