Я не уверен, что вы хотите, но ваше регулярное выражение неверно, попробуйте изменить конец так, чтобы он выглядел следующим образом /^(\d{4}\-\d\d\-\d\d([tT][\d:\.]*)?)([zZ]|([+\-])(\d{3}))?$/
, и он по крайней мере будет соответствовать тому, что вы ищете.
Исходное регулярное выражение искало символ, либо z
, либо Z
, либо +
, либо -
, за которым следуют 2 цифры, двоеточие, а затем еще 2 цифры, поэтому я изменил его, вместо того чтобы искать для 2 цифр, двоеточия и еще 2 цифр он выглядел как 3 цифры, как в вашем примере.