2017-01-10 1 views
1

После некоторых обновлений в моем проекте шаблон ввода больше не работает. Похоже, после обновления до Ионные 2.1.18 ввода рисунка, кажется, сломана: Эта часть работает для меня, прежде, но теперь Password.valid всегда ложно:Ионный/угловой2 шаблон регулярного выражения нарушен

<ion-item> 
    <ion-label floating>Password*</ion-label> 
    <ion-input type="password" required [(ngModel)]="regModel.Password" name="Password" 
       #Password="ngModel" pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d*\w]{5,}$" 
       (change)="checkPassword()"></ion-input> 
    </ion-item> 
    <ion-item no-border no-lines no-margin *ngIf="!Password.valid && Password.dirty" color="danger"> 
    <small>Five characters minimum,</small> 
    <br> 
    <small> at least 1 uppercase, 1 lowercase and 1 number {{Password.valid}} {{Password.dirty}} 
    </small> 
    </ion-item> 

Update

Забавная вещь , некоторые простые регулярные выражения работают нормально, а другой - нет, например [a-zA-Z] * - отлично работает, \ d {5} - не

+0

Попробуйте '[pattern]' http://stackoverflow.com/questions/34992630/input-validation-with-pattern-angularjs-2 –

ответ

0

На всякий случай, если кто-то еще столкнется с проблемой Ionic pattern, вот рабочий пример пароля, который:

  • содержат, по меньшей мере, один номер
  • по меньшей мере, один специальный символ
  • по меньшей мере один символ нижнего регистра
  • по меньшей мере, одного символа верхнего регистра

внутри .ts файла:

export class SignUpPage { 
    public PASSWORD_REGEX = `.*(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[[email protected]#\\$%\\^&\\*]).*` 

// ... 
} 

HTML внутри:

<ion-input [(ngModel)]="signUpData.password" 
      name="password" 
      type="password" 
      #password="ngModel" 
      [minlength]="10" 
      [pattern]="PASSWORD_REGEX" 
      required> 
</ion-input> 

Примечание: я пропустил проверку длины пароля в регулярных выражениях и положить внутрь [minlength] собственности, так что длина может быть легко управлять без копания в regex, однако, если вы хотите, чтобы он был реализован с использованием регулярного выражения, используйте его: .*(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[[email protected]#\$%\^&\*])(?=.{10,}) - здесь пользователь должен предоставить пароль не менее 10 символов.

Смежные вопросы