0

指定された年の入力が特定の形式であるかどうかを検証したいと思います。年の形式は、YYYYADまたはYYYYBC(例: 2013AD) - 4 つの数字と AD/BC の間にスペースを入れないでください。

入力が正しい形式の場合は true を返し、そうでない場合は false を返します。(予想される不適切な形式の一部123ADは、、、、、、、、XYZADです) 。どうすればこれを達成できますか?AD2013AD2013@123AD2013ad

4

2 に答える 2

5

などの正規表現を使用し/^\d{4}(AD|BC)$/ます。

正規表現の説明:

  • ^- 文字列の開始
  • \d{4}- 正確に 4 回繰り返される 0 から 9 までの数字
  • (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!";
}
于 2013-04-05T15:08:30.993 に答える
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)/

于 2013-04-05T15:08:11.290 に答える