Нужно регулярное выражение для использования в Javascript - PullRequest
1 голос
/ 03 октября 2019

Мне нужно регулярное выражение, которое позволит мне

1) разрешить только цифры [решено]

2) десятичное число до 2 знаков [решено]

3) разрешить только 1 ноль в начале примера: '0.12' => нужна помощь по этому вопросу

4) не разрешать только нули пример:'0000' => нужна помощь по этому вопросу

Ниже приведено регулярное выражение, которое у меня есть, которое допускает только цифры и 2 знака после десятичной дроби:

Regex: /^\s*(?=.*[1-9])\d*(?:\.\d{0,2})?\s*$/g

Заранее спасибо

1 Ответ

0 голосов
/ 03 октября 2019

По сути, вы ищете или в вашем выражении, ноль или любое число, начинающееся с 1-9.

const re = /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/

;[
    '0',
    '00',
    '10',
    '010',
    '123',
    '123.',
    '123.0',
    '123.00',
    '123.000',
    '0.1',
    '0.10',
    '0.100',
    '00.10'
]
    .forEach(
        v => console.log(re.test(v) ? '✓' : '✗', v)
    )

Для краткости я пропустил начальные и конечные пробельные совпадения - но, вообще говоря, если вы разрешаете это, это также может быть немного чище до .trim() вход перед началом работы с ним. Также обратите внимание, что вам, вероятно, не нужно совпадать с периодом, если после него нет десятичных дробей.

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