Я написал регулярное выражение для проверки действительного DD-MM.Регулярное выражение:
^ ((0 [1-9] | [12] \ d | (3 [01])) + - (0 [13578] | 1 [02])) | ((0 [1-9] | [12] \ д | (3 [0])) + - (0 [469] | 1 [1])) | ((0 [1-9] | [1] \ д| (2 [0-9])) + - (0 [2])) $
Отлично работает в Javascript / TypeScript.
public isValidDob(ddmm) : boolean {
const regex = /^((0[1-9]|[12]\d|(3[01]))+\-(0[13578]|1[02]))|((0[1-9]|[12]\d|(3[0]))+\-(0[469]|1[1]))|((0[1-9]|[1]\d|(2[0-9]))+\-(0[2]))$/gm;
const re = new RegExp( regex, "g" );
const isValid = re.test(ddmm);
return isValid;
}
Но в угловом HTMLNgForm, шаблон регулярного выражения не работает.
<input type="text"
[(ngModel)]="person.wishDob" name="wishDob" #wishDob="ngModel"
pattern="^((0[1-9]|[12]\d|(3[01]))+\-(0[13578]|1[02]))|((0[1-9]|[12]\d|(3[0]))+\-(0[469]|1[1]))|((0[1-9]|[1]\d|(2[0-9]))+\-(0[2]))$"
minlength="5" maxlength="5" />
Мне не хватает экранирующего символа здесь?ИЛИ () И ИЛИ |не допускается в шаблоне HTML?