我正在尝试为给定字符串允许的最大长度(在特定接口中)创建perl验证表达式
我尝试了/.{0,5}/
或/^.{0,5}&/
我注意到在很多类似的情况下使用过,但似乎任何输入的字符串(甚至低于20个字符)都会失败......
我搜索过&测试了许多方法,但没有结果。
我最近尝试过:
[[:alpha:]]\{0,20\}
但行为很奇怪.. 你能帮我么?我很有兴趣阻止用户在表单中输入20个或更多字符 谢谢!
答案 0 :(得分:2)
不使用正则表达式,请尝试使用length()
函数。
示例:
my $max = 4;
my $input = "qwerty";
if (length($input) < $max) {
print "[$input] is less than $max\n";
} else {
print "[$input] is more or equal than $max\n";
}
见
perldoc -f length
答案 1 :(得分:0)
/^.{1,20}$/
怎么样?
$ echo "12345678901234567890123" | perl -nle "print if /^.{1,20}$/"
$ echo "12345678901234567890" | perl -nle "print if /^.{1,20}$/"
12345678901234567890
答案 2 :(得分:0)
如果从命令行读取输入,请尝试此操作。
#!/usr/perl/bin -w
use strict;
my $input;
while (1) {
$input = <>;
if(length($input) < 20) {
print "perfect\n";
} else {
print "Exceeded 20 characters\n";
exit(1);
}
}