问题描述
- 请问下面代码中正则表达式“/./us”怎么解释?
- <?php
if(!empty($_POST['text'])){
$str = $_POST['text'];
preg_match_all(""/./us"" $str $match);
$num = count($match[0]);
print_r($match);
if($num <= 6) {
echo ""alert('输入内容的长度小于6');"";
}else{
echo ""alert('发布成功');"";
}
}
?>
解决方案
u(PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。
s (PCRE_DOTALL)
如果设置了这个修饰符,模式中的点号元字符匹配所有字符,包含换行符。如果没有这个 修饰符,点号不匹配换行符。这个修饰符等同于 perl 中的/s修饰符。 一个取反字符类比如 [^a] 总是匹配换行符,而不依赖于这个修饰符的设置。
代码意思就是要匹配6个以上字符才算符合要求,用这样即可: ""/^.{6}$/m""
时间: 2024-12-03 08:14:28