西暦表記の正規表現
[12]\d{3}[/.\-年](0?[1-9]|1[0-2])[/.\-月](0?[1-9]|[12][0-9]|3[01])日?
上記のコードの仕様は以下の通りです
- 区切り文字は「/」もしくは「.」、「-」、「年」のいずれかの文字が対象
- 年の入力は1000〜2999年の期間まで
- 半角数字のみが対象
- 月と日にちが一桁の場合に0が先頭についている場合を許容
- 月と日にちが一桁の場合に0が先頭についていない場合を許容
区切り文字を変更したい場合
変更箇所は以下の2箇所です。
- [/.\-年]
- [/.\-月]
変更しない場合「/
」もしくは「.
」、「-
」、「年
」のいずれかの文字が対象になります。
それぞれ[]の中から該当の文字を削除することで、許容文字を変更することができます。
ただし、「.
」(ドット)を許容したくない場合に限り、「.\」の文字列を削除する必要があります。
「\」(バックスラッシュ)または「¥」(円マーク)はエスケープ文字と言って、「.」を文字列として認識するために必要な記述になります。
対象の年を変更したい場合
変更箇所は以下の1箇所です。
- [12]\d{3}
変更しない場合1000〜2999年の期間が対象になります。
1000〜9999を対象にしたい場合
「[12]\d{3}」の部分を「[1-9]\d{3}」に変更します。
「[12]」では、先頭の数字を「1」もしくは「2」のみ対象としていましたが、「[1-9]」に変更することで「1〜9」までを対象になります。
「[1-9]」の数字を変更することで3999までを対象などの変更も可能です。その場合は「[1-3]\d{3}」と変更します。
0〜9999を許容したい場合
「[12]\d{3}」の部分を「\d{1,4}」に変更します。
「\d{1,4}」に変更することで、数字の1〜4桁の数字が対象になります。
月が一桁の場合の設定
変更箇所は以下の1箇所です。
- (0?[1-9]|1[0-2])
変更しない場合には、先頭に0があるかどうかに関わらず対象になります。
月が一桁の場合に先頭に0を強制する
(0?[1-9]|1[0-2])の部分を(0[1-9]|1[0-2])に変更することで、月が一桁の場合に0の入力を強制することができます。
月が一桁の場合に先頭の0を制限する
(0?[1-9]|1[0-2])の部分を([1-9]|1[0-2])に変更することで、月が一桁の場合に0の入力を制限することができます。
日にちが一桁の場合の設定
変更箇所は以下の1箇所です。
- (0?[1-9]|[12][0-9]|3[01])
変更しない場合には、先頭に0があるかどうかに関わらず対象になります。
日にちが一桁の場合に先頭に0を強制する
(0?[1-9]|[12][0-9]|3[01])の部分を(0[1-9]|[12][0-9]|3[01])に変更することで、日にちが一桁の場合に0の入力を強制することができます。
日にちが一桁の場合に先頭の0を制限する
(0?[1-9]|[12][0-9]|3[01])の部分を([1-9]|[12][0-9]|3[01])に変更することで、日にちが一桁の場合に0の入力を制限することができます。