Как убедиться, что пользователь вводит правильное Regex при вводе формы HTML? - PullRequest
0 голосов
/ 08 января 2020

Я не уверен, как еще сформулировать это, кроме того, что у меня есть форма, где пользователь может ввести регулярное выражение, у меня включена проверка формы, но я пытаюсь проверить это поле, чтобы убедиться, что оно содержит допустимое регулярное выражение.

Я работаю в React с Redux, и вся моя форма находится в созданном мной компоненте формы, вот небольшой фрагмент JSX с соответствующим полем:

<div className="form-group">
    <label htmlFor="regexInput">Regex</label>
    <input required name="regexInput" onChange={e => setRegexInput(e.target.value)} type="text" className="form-control" id="regexInput"/>
    <div className="invalid-feedback">
        This field is required.
    </div>
</div>

Как мне убедиться, что пользователь ввел правильное регулярное выражение? Я пытался использовать упомянутое регулярное выражение здесь , но я не думаю, что JavaScript Regex Engine поддерживает рекурсивные регулярные выражения. Кто-нибудь может помочь?

Редактировать: Я забыл упомянуть, что я использую bootstrap для проверки - я не уверен, что это что-то меняет.

1 Ответ

0 голосов
/ 08 января 2020

Чтобы проверить, является ли введенная пользователем строка действительным регулярным выражением, вы можете просто сделать следующее

try {
  RegExp(e.target.value);
  // Handle correct regex-string here
} catch {
  // Handle invalid regex-string */
}

Код должен быть помещен либо в onKeyUp, либо в onChange, реагируя на <input> с идентификатором * 1005. *.

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