我想测试用户提交的内容,看看是否包含HTML,而且我更喜欢这样做,而不必编写我自己的正则表达式。有没有人知道有一个模块可以做到这一点,或者在perl中有一个很好的方法来做到这一点?
发布于 2013-05-16 18:11:03
您可以检查HTML::Restrict模块,该模块允许将内容限制为允许的标签。
示例:
use 5.012;
use strict;
use warnings;
use HTML::Restrict;
use Data::Dumper;
my @texts = map { { "has_html", 0, "text", $_ } }
split(/==cut-here==/, do{ local $/; <DATA> });
my $res = HTML::Restrict->new();
foreach my $text (@texts) {
my $tmp = $text->{text};
my $plain = $res->process($tmp);
$plain =~ s/\s//gs;
$tmp =~ s/\s//gs;
$text->{has_html} = $tmp cmp $plain ? "YES" : "NO";
}
say Dumper(\@texts);
__DATA__
<img src="image.jpg" alt="tricky>text" />
text with html
==cut-here==
plain
text here
==cut-here==again <!-- a > b --> with html==cut-here==
plain
将检查4个文本块并检测html。如果你配置了HTML::Restrict
,你也可以检查"allowed“和"not allowed”标签。
https://stackoverflow.com/questions/16593661
复制相似问题