使用PHP进行简单的年份格式验证

时间:2013-04-05 15:07:04

标签: php validation

我想验证给定的年份输入是否是特定格式。年份的格式应该类似于YYYYADYYYYBC(例如:2013AD) - 4个数字和AD / BC之间没有任何空格。如果输入格式正确,则应返回true,否则返回false。 (有些预期的格式不正确; 123ADXYZADAD2013AD2013@123AD2013ad)。我怎样才能做到这一点?

提前致谢... :)

2 个答案:

答案 0 :(得分:5)

使用正则表达式,例如/^\d{4}(AD|BC)$/

正则表达式的解释

  • ^ - 字符串的开头
  • \d{4} - 从0到9的数字恰好重复4次
  • (AD|BC) - 一组字符串“AD”或字符串“BC
  • $ - 字符串结尾

<强>代码

$input = "2013BC";
if (preg_match("/^(\d{4})(AD|BC)$/", $input, $matches)) {
    echo "OK.\n";
    echo "Year: " . $matches[1] . "\n";
    echo "AC/BC: " . $matches[2];
} else {
    echo "NOT OK!";
}

答案 1 :(得分:0)

function check($year)
{
  if (is_numeric(substr($year, 0, 4)) && in_array(array("AD", "BC"), substr($year, 4,6)))
    return true;
  return false;
}

或使用REGEX,您可以查看/d{4}(AD|BC)/