Это интересно:
^[1-9]{1}$
Похоже, вы используете это, чтобы соответствовать цифре, которой не предшествует или не следует другая цифра. Это не сработает. ^
и $
привязывают совпадение к началу и концу строки, а {1}
вообще ничего не делает.
Если вы хотите разрешить однозначное число с необязательным начальным нулем, используйте это:
0?[1-9]
Тогда полное регулярное выражение будет:
(?:1[02]|0?[1-9])\/(?:3[01]|[12]\d|0?[1-9])\/(?:19\d{2}|20\d{2})
Я также добавил скобки для группировки, как предложил @Seth.