我想驗證給定年份輸入是否爲特定格式。年的格式應該像YYYYAD
或YYYYBC
(例如:2013AD
) - 4個數字和AD/BC之間沒有任何空格。如果輸入格式正確,它應該返回true,否則返回false。 (一些預期不正確的格式是:123AD
,XYZAD
,AD2013
,AD
, 2013
,@123AD
,2013ad
)。我怎樣才能做到這一點?使用PHP進行簡單的年份格式驗證
在此先感謝... :)
我想驗證給定年份輸入是否爲特定格式。年的格式應該像YYYYAD
或YYYYBC
(例如:2013AD
) - 4個數字和AD/BC之間沒有任何空格。如果輸入格式正確,它應該返回true,否則返回false。 (一些預期不正確的格式是:123AD
,XYZAD
,AD2013
,AD
, 2013
,@123AD
,2013ad
)。我怎樣才能做到這一點?使用PHP進行簡單的年份格式驗證
在此先感謝... :)
使用正則表達式的表達,如/^\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)/
這是好的我的修訂問題? – 2013-04-05 15:13:01
地雷不起作用。 – 2013-04-05 15:58:50
這是非常相似的最後一個問題 - http://stackoverflow.com/questions/15821635/how-to-split-a-string-based-on-位置 – Lix 2013-04-05 15:10:31
上述問題也由我自己提出。但這個問題與那個沒有關係。 – 2013-04-05 15:17:06
我真的不認爲有一個簡單的解決方案,而不使用適當的日期功能.. – Baba 2013-04-05 15:18:10