RegEx:HTML白名单
由于我对正则表达式的理解能力较弱,我一直在与它们合作以提高性能。我一直在尝试的一个概念是删除所有HTML元素,除了允许的元素列表 我成功地做到了相反的操作--删除指定的元素列表:RegEx:HTML白名单,regex,Regex,由于我对正则表达式的理解能力较弱,我一直在与它们合作以提高性能。我一直在尝试的一个概念是删除所有HTML元素,除了允许的元素列表 我成功地做到了相反的操作--删除指定的元素列表: <\/?(strong|em|a)[^>]*> ]*> 然而,我想要相反的结果,并删除每个元素,但是。假设PCRE,使用(?个元素)而不是(元素)。假设PCRE,使用(?个元素)而不是(元素)。 而是使用一个 相反,使用 匹配除strong和em之外的所有HTML标记对 (?!strong|em)
<\/?(strong|em|a)[^>]*>
]*>
然而,我想要相反的结果,并删除每个元素,但是。假设PCRE,使用(?个元素)而不是(元素)。假设PCRE,使用(?个元素)而不是(元素)。
而是使用一个
相反,使用
匹配除strong和em之外的所有HTML标记对
(?!strong|em)
<((?!strong|em).|\n)*?>
匹配除strong和em之外的所有HTML标记对
(?!strong|em)
<((?!strong|em).|\n)*?>
不要使用正则表达式解析[X]HTML 尤其是绝对不要使用正则表达式解析[X]HTML作为安全措施 HTML解析器(或tidier后跟XML解析器)是白名单的唯一可行方法 //g匹配所有HTML标记对,包括标记中的属性 没有
还有上千种可能,包括有效和格式错误,但浏览器仍能理解。不要使用正则表达式解析[X]HTML 尤其是绝对不要使用正则表达式解析[X]HTML作为安全措施 HTML解析器(或tidier后跟XML解析器)是白名单的唯一可行方法 //g匹配所有HTML标记对,包括标记中的属性 没有
还有上千种可能,包括有效的和格式错误的,但浏览器仍能理解。这不是实际的生产实施,而是一种学习实验。公平地说,只需将此作为警告发布给其他人。这不是实际的生产实施,但作为一个学习实验。很公平,我只是把这个作为对其他人的警告。中途。它仍然与结束标记匹配。e、 g.test返回test。它仍然与结束标记匹配。e、 g.test返回test“”不完全有效:它不匹配任何以“”开头的标记不完全有效:它不匹配任何以“”开头的标记