验证包含数字和冒号的字符串


Validate a string containing numbers and colon

我有一个带有<input><form>,它应该只包含数字和冒号,如下所示:

$string = '1:9:3:2:0';

当我验证用户提交的字段时,我想确保这个输入是有效的。例如,如果只是数字,我会做一个is_numberic()检查。

如何验证此字符串?

澄清:

$string = '1:9:3:2:0'; // pass
$string = '2123:8:1'; // pass
$string = 'a:9:3:2:0'; // fail
$string = '1:9:3:2:'; // fail
$string = '1:9:3:2:0';

regex语句是可行的吗?

使用下面的正则表达式进行字段验证。

var $m = preg_match('~^'d+(?::'d+)+$~', $str);
  • ^—线路起点。

  • 'd+-匹配一个或多个数字字符。

  • :'d+-冒号和一个或多个数字。

  • (?::'d+)+重复^^一次或多次。

  • $行尾。

编辑:

var $m = preg_match('~^'d+(?::'d+)*$~', $str);