PHP - preg_match仅用于数字和单个破折号

时间:2016-01-13 15:26:52

标签: php regex preg-match

假设我只允许这种格式为2015-2016,其中包含数字且仅包含一个短划线。如何使用preg_match执行此操作?我试过以下,但没有运气。

$a = '2015-2016';
if(!preg_match('/[^0-9\-]/i',$a)) {
    then return not valid data`
} 

2 个答案:

答案 0 :(得分:3)

希望这会有所帮助

preg_match('/^\d{4}-\d{4}$/', $string);

^字符串的开头

\d{4}匹配数字[0-9]恰好4次

-匹配字符 - 字面意思

\d{4}匹配数字[0-9]恰好4次

$字符串结尾

答案 1 :(得分:0)

$a = '2015-2016';
if(!preg_match('/^[0-9 \-]+$/',$a)) {
 then return not valid data } 

试试。