00000000 から 9999999999 までの値を検証する正規表現があります。ここで、+/-00000000 から +/-9999999999 までの正/負の検証を追加する必要があります。
私が使う:
/^[0-9]{8,10}$/
しかし、私が試した+/-検証を追加することはできません:
/(-|+)(^[0-9]{8,10})$/
/[-+](^[0-9]{8,10})$/
/^[-+][0-9]{8,10}$/
文字列 +/-00000000 -> +/-9999999999 を検証するにはどうすればよいですか?
[編集] 使用:
if (
!preg_match( "/^[-+]([0-9]{4}).(((0[13578]|(10|12)).(0[1-9]|[1-2][0-9]|3[0-1]))|(02.(0[1-9]|[1-2][0-9]))|((0[469]|11).(0[1-9]|[1-2][0-9]|30)))$/", $_POST[$field] ) ||
!preg_match( "/^[-+]([0-9]{5,7}).((0[13578]|(10|12))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$/", $_POST[$field] ) ||
!preg_match( "/^[-+][0-9]{8,10}$/", $_POST[$field] )
) {
$this->errors[] = $errorMessage;
}
検証パターンは次のとおりです。
+/-0000.01.01 +/-9999.12.31
±10000.01 ±9999999.12
+/-10000000 +/-9999999999
日付目的です..次のエラーが表示されます: コンパイルに失敗しました: オフセット 3 で繰り返すものはありません
おそらく、スクリプトが 1 番目と 2 番目のパターンも検証しようとするためです... 99%
+10000000 から開始する必要があるため、パターンが間違っている +00000000 (8 桁) を検証することもわかります。