gpt4 book ai didi

javascript - 仅允许 contenteditable div 中的某些标签

转载 作者:行者123 更新时间:2023-12-03 00:43:07 24 4
gpt4 key购买 nike

我有一个 contenteditable div 并使用键盘快捷键,如 ctrl+i用户能够格式化文本。当他们输入innerHTML时反射(reflect)标签的更改即:

Hello&nbsp;<i>thanks for&nbsp;<br><br>for showing up<b>&nbsp;y'all b</b></i>

这很好,并且很适合我的目的。但问题出现了,当我去打印不同的 html div 时如果用户添加任何其他 html 标签,他们可能真的会搞乱应用程序。

例如,如果他们添加了 <script>标签或 style等等..如何让用户允许添加 <i> , <br> , <b> , <s> ,和&nbsp;无法添加其他任何内容?

有什么想法吗?谢谢

最佳答案

我认为您可以使用 regExpression 来避免“indeseables”标签。有些喜欢

<textarea #data [(ngModel)]="value" (input)="replace(data)"></textarea>
<div [innerHtml]="valueParse">
</div>

replace(control:any)
{
this.valueParse=control.value.replace(/<(?!br|i|u)((\w+))>/gm,"&lt$1&gt")
.replace(/<\/(?!br|i|u)((\w+))>/gm,'&lt\/$1&gt');
}

参见stackblitz

关于javascript - 仅允许 contenteditable div 中的某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53357161/

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