Дозировка атрибута входного шаблона, по-видимому, не принимает регулярное выражение, искривленное с (/ regexp /) - PullRequest
0 голосов
/ 10 октября 2018

У меня есть рабочая проверка ввода

<input class="form-control" pattern="^(?=.*\d)(?=.*[a-zA-Z]).{8,12}$" placeholder="" type="password" required>

Я пытаюсь сохранить шаблон в переменной passwordPattern и вставить его в HTML

    import { Component, OnInit} from '@angular/core';
    @Component({
      selector: 'my-component',
      templateUrl: './my-component.html',
      styleUrls: ['./my-component.scss']
    })
    export class myComponent implements OnInit {
    passwordPattern:RegExp;
     constructor() {
// 1 digit, 1 letter, minimum 8 chars and maximum 12 chars
      this.passwordPattern = /^(?=.*\d)(?=.*[a-zA-Z]).{8,12}$/ ;
      }

    ngOnInit() {}

    }

HTML

   <input class="form-control" [pattern]="passwordPattern" placeholder="" type="password" required>

атрибут входного паттерна доза, кажется, не принимает регулярное выражение, искаженное с / / (/ regexp /).я попытался удалить его и обернуть как строку, но он не работает (this.passwordPattern = '^(?=.*\d)(?=.*[a-zA-Z]).{8,12}$';), я также попытался добавить шаблон, используя new RegExp() (this.passwordPattern = new RegExp("(?=.*\d)(?=.*[a-zA-Z]).{8,12}")), также не работал, в поисках правильногоЧтобы сделать это, моя цель состоит в том, чтобы этот шаблон как глобальная переменная выбрасывал приложение.любая помощь будет оценена.

см. Пример здесь https://jsfiddle.net/1hk7knwq/10565/

1 Ответ

0 голосов
/ 10 октября 2018

Пожалуйста, измените значение переменной вашего класса следующим образом:

this.passwordPattern = new RegExp("(?=.*\d)(?=.*[a-zA-Z]).{8,12}") ;

Теперь вы будете использовать конструктор RegExp для создания объекта регулярного выражения для сопоставления текста с шаблоном.Это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...