我想验证给定的年份输入是否是特定格式。年份的格式应该类似于YYYYAD
或YYYYBC
(例如:2013AD
) - 4个数字和AD / BC之间没有任何空格。如果输入格式正确,则应返回true,否则返回false。 (有些预期的格式不正确; 123AD
,XYZAD
,AD2013
,AD
,2013
,@123AD
,2013ad
)。我怎样才能做到这一点?
提前致谢... :)
答案 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)/