Регулярные выражения ограничения - PullRequest
1 голос
/ 04 февраля 2020

Я новичок в регулярных выражениях. У меня есть текстовое поле, и мне нужно ограничить ввод цифрами и одной запятой. Я знаю, как ограничить число. Но у меня есть другое условие. Если пользователь вводит запятую, он должен ввести другой номер после этого. Количество цифр не ограничено. Там может быть только одна запятая. Ниже приведены все допустимые значения: 123456 4567,8907

, но я не могу разрешить 4567 ,. У меня есть этот шаблон, pattern = "[0-9] + ([,] [0-9] +)?" но это не работает.

1 Ответ

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

Следующее регулярное выражение допускает любое количество цифр (включая ни одной), за которыми, возможно, стоит одна запятая, за которой следует любое количество цифр. Этот шаблон должен охватывать от начала до конца с использованием символов ^ и $, поэтому другие символы не допускаются:

^[0-9]*,?[0-9]+$

Попробуйте здесь:

let inp = document.getElementsByTagName('input')[0];
let p = document.getElementsByTagName('p')[0];
inp.addEventListener('input', () => {
  let result = inp.value.match(`^[0-9]*,?[0-9]+$`);
  p.innerHTML = `Is "${inp.value}" allowed? ${result ? 'YES' : 'NO'}`;
});
body { font-family: monospace; }
<input type="text" placeholder="try a value here"/>
<p></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...