В PHP я использую именованные совпадения, поэтому разные форматы просты:
$format = 'y-m-d'; // or 'd-m-y' or 'd/m/y' etc
$regexp = '#^'.strtr(preg_quote($format), array('y' => '(?P<year>(?:1|2)\d{3})', 'm' => '(?P<month>\d\d?)', 'd' => '(?P<day>\d\d?)')).'$#';
, но я не думаю, что это возможно в JS.Может быть, имя совпадает другим способом ...
edit
Я пробовал это:
'2004-8-29'.match(/^(\3\d{4})-(\2\d\d?)-(\1\d\d?)$/)
, но я не думаю, что это все ... (Обратите внимание на \ 3, \ 2 и \ 1 до фактического захвата / совпадения)
В порядке 1, 2, 3 оно совпадает.В порядке 3, 2, 1 это не так.Не уверен, что \1
, \2
и \3
делают =)