Как проверить, соответствует ли пользовательский ввод определенному регулярному выражению в реаги? - PullRequest
0 голосов
/ 13 февраля 2020
handleModalField = event => {
    var value = event.target.value;
    var isDisabled = true;
    if (
      value &&
      //value.length >= 5 &&
      /^[A-Za-z]{5}$/i.test(value)     
    ) {
      isDisabled = false;
    }
    this.setState({
      modalField: value,
      isDisabled: isDisabled
    });
  };

Выше приведено исправление моего сегмента кода ... Я хочу изменить свое регулярное выражение, чтобы проверить, содержит ли переменная 'value' AZ и az, а длина должна быть не менее 5 символов.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Используйте это

/^[A-Za-z]{5,}$

Если вы поместите тег / i, вы сделаете его без учета регистра, чтобы больше не проверять строчные и прописные буквы

И {5} только проверяет если строка имеет длину 5. Для 5 или более вам нужно использовать {5,}

0 голосов
/ 13 февраля 2020

Вы можете создать объект Regex и проверить, соответствует ли ввод вашему регулярному выражению

ex:

    let reg = RegExp(/^[A-Za-z]{5}$/i);
    reg.test("hello")

, поэтому в вашем примере это что-то вроде этого

//define this to constant
const reg = RegExp(/^[A-Za-z]{5}$/i);

handleModalField = event => {
    var value = event.target.value;
    var isDisabled = true;
    if (reg.test(value)) {
      isDisabled = false;
    }
    this.setState({
      modalField: value,
      isDisabled: isDisabled
    });
  };

для более регулярного выражения regex посетите здесь

для значения Dynami c, связанного с вводом регулярных выражений следующим образом

let n = 6;
let regs = RegExp(`^[a-z]{${n}}$`,"i");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...