Regex для неспецифических c версий в JavaScript - PullRequest
3 голосов
/ 18 марта 2020

Я пытаюсь настроить способ запрета ввода в определенные поля в JavaScript. Большинство моих полей проверяют на /^\d*$/.test(value), что предотвращает ввод или вывод любого ввода, который не является числовым c.

В одном конкретном поле используется /^[\d.]*$/.test(value), который допускает любое количество цифр и десятичное число чтобы быть помещенным также.

Моя проблема заключается в том, что десятичное регулярное выражение позволяет вводить любое число или, в частности, комбинацию десятичных дробей. Я пытаюсь предотвратить ввод, как "....", "13.24..36", ".2.2" и т. Д. c.

Может ли кто-нибудь предоставить регулярное выражение, которое должно начинаться с числа , заканчиваться числом, может иметь десятичную или нулевую дробь и предотвращает объединение двух десятичных дробей? (как .. <- предотвращение второго, если не следует другое число) </p>

1 Ответ

3 голосов
/ 19 марта 2020

\d+(?:\.?\d+)? соответствует одной или нескольким цифрам и, необязательно, группе из необязательно точки и еще нескольких цифр

Это по-прежнему разрешает совпадения типа .2, но вы можете проверить, что цифрам не предшествует точка: (?<!\.), за которым не следует точка: (?!\.)

Полный шаблон становится (?<!\.)\d+(?:\.?\d+)?(?!\.). Имейте в виду, что негативный взгляд (?<!...) еще не поддерживается в каждой среде JavaScript. (Node.js и Chrome поддерживают это в настоящее время).

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