我想验证给定年份输入是否为特定格式。年份的格式应该是YYYYAD
或YYYYBC
(例如:)2013AD
- 4 个数字和 AD/BC,中间没有任何空格。
如果输入格式正确,则应返回 true,否则应返回 false。(一些预期的不正确格式是; 123AD
, XYZAD
, AD2013
, AD
, 2013
, @123AD
, 2013ad
)。我怎样才能做到这一点?
我想验证给定年份输入是否为特定格式。年份的格式应该是YYYYAD
或YYYYBC
(例如:)2013AD
- 4 个数字和 AD/BC,中间没有任何空格。
如果输入格式正确,则应返回 true,否则应返回 false。(一些预期的不正确格式是; 123AD
, XYZAD
, AD2013
, AD
, 2013
, @123AD
, 2013ad
)。我怎样才能做到这一点?
使用正则表达式,例如/^\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!";
}
function check($year)
{
if (is_numeric(substr($year, 0, 4)) && in_array(array("AD", "BC"), substr($year, 4,6)))
return true;
return false;
}
或者使用正则表达式,你可以检查/d{4}(AD|BC)/