Summernote 编辑器验证允许一些 html 标签,如 <b>、<i>、<ul>、<li>,但不允许特殊字符

Posted

技术标签:

【中文标题】Summernote 编辑器验证允许一些 html 标签,如 <b>、<i>、<ul>、<li>,但不允许特殊字符【英文标题】:Summernote editor validation for allow some html tags like <b>, <i>, <ul>, <li> but not special characters 【发布时间】:2020-09-15 15:00:26 【问题描述】:

我使用了许多模式,但没有找到任何合适的模式来允许带有一些 html 标记和没有 HTML 标记的字符串。

此模式允许 HTML 标记,但不允许使用简单的字符串

<textarea id="description" class="summernote" maxlength="500" data-parsley-pattern="/<(p|span|ul|li|i|u) ?.*>(.*)<\/(p|span|ul|li|i|u)>/"></textarea>

允许的值应该是:1. Adfg gfg gdfsg gvdsfgdsr

    这是测试说明 测试 dasdasddsad

不应该被允许:>@>$#@$> ./34.3/2.2/34 34 34234 $#%#$$#

请帮帮我

【问题讨论】:

稍微详细说明您的问题,例如应该允许什么和不应该允许什么。 我正在使用summernote文本编辑器,我需要验证我的文本框只允许一些HTML标签,但不允许任何特殊字符,如$@&% 请按已编辑的问题检查 如果它适合你,你能更新一下吗? 它对我不起作用 【参考方案1】:

1.) 如果你想允许整个标签(带有属性和文本,属性中允许特殊字符但文本区域中不允许),你可以使用它。

对于所有示例:突出显示的将被匹配

Aenean lacinia bibendum &lt;a href="/life"&gt;life&lt;/a&gt; sed consectetur。 &lt;a href="/work"&gt;Work&lt;/a&gt; quis risus eget urna mollis ornare &lt;a href="/about"&gt;about&lt;/a&gt; leo。 "

/<\s*([a-z]?)[^>]*>([a-zA-Z0-9_]*?)<\s*/\s*([a-z]?)>/g

如果你只想允许标签名你可以使用这个

它将仅匹配标签名称,例如 => &lt;div&gt;&lt;a&gt;&lt;li&gt;

/<\s*([a-z]*?)[>]*\s*>/g

如果您只想一次接受一个标签:示例 =>&lt;div&gt; 使用这个:

/<\s*([a-z]*?)[>]*\s*>/

如果您不想在标签的开头或结尾留出空格,请使用(删除 \s*)

/<([a-z]*?)[>]*>/

如果您只想允许某些特定标签:

/<\s*((p|span|ul|li|i|u)1?)[>]*\s*>/

这将只允许特定的标签和字母数字 + _ 之间,不允许标签中的任何属性:

示例:&lt;a&gt;life klaskdjlaksjd lsdjk&lt;/a&gt;

/<\s*((p|span|ul|li|i|u|a)?)*>([a-zA-Z0-9_ ]*?)<\s*/\s*((p|span|ul|li|i|u|a)1?)?>/

【讨论】:

以上是关于Summernote 编辑器验证允许一些 html 标签,如 <b>、<i>、<ul>、<li>,但不允许特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

如何验证 Summernote 中的文本 - Php

防止 Summernote html 所见即所得编辑器页面被内容 CSS 更改

Summernote createRange 与 HTML

summernote - 在 HTML 视图中更新代码

无法从mysql db为summernote vue html编辑器赋值

从 Mysql DB 检索后,summernote 显示 html 代码