我有一个内容可编辑的div,使用ctrl+i
之类的键盘快捷键,用户可以设置文本格式。当他们键入innerHTML
时,会反映出标记,即
Hello <i>thanks for <br><br>for showing up<b> y'all b</b></i>
这很好,很适合我的目的。但问题是,当我用其他div
打印html时,如果用户添加了任何其他html标记,则它们确实可能使应用程序混乱。
例如,如果他们添加了<script>
标记或style
等。如何使用户仅被允许添加<i>
,<br>
,<b>
,<s>
和
却无法添加其他内容?
有什么想法吗?谢谢
答案 0 :(得分:1)
我认为您可以使用regExpresion来避免使用“ 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,"<$1>")
.replace(/<\/(?!br|i|u)((\w+))>/gm,'<\/$1>');
}
请参见stackblitz