1

我有这个正则表达式:

if(preg_match("@^\d{4}$@", basename($entry, ".php"))) {
--do something here--
}

该条件仅适用于 4 位数字。但我需要验证 4 位数字和 5 位数字。如何使其也可以验证 5 位数字?谢谢!

4

4 回答 4

6

大括号可以采用范围的低端和高端,所以{4,5}应该可以工作。

于 2012-11-07T16:28:54.000 回答
3

作为正则表达式的替代方法,请考虑使用更简单的函数,例如ctype_digit()strlen()

$filename = basename($entry, ".php");
$length = strlen($filename);

if (($length >= 4 && $length <= 5) && ctype_digit($filename)) {
  // your code
}
于 2012-11-07T16:30:49.133 回答
2
if(preg_match("@^\d{4,5}$@", basename($entry, ".php"))) {
--do something here--
}
于 2012-11-07T16:29:25.747 回答
2

代替

 if(preg_match("@^\d{4}$@", basename($entry, ".php"))) {

采用

if(preg_match("@^\d{4,5}$@", basename($entry, ".php"))) {
于 2012-11-07T16:29:42.893 回答