Регулярное выражение для принятия только десятичных и числовых значений, включая десятичные дроби с нулевой точкой, и ограничения 0 - PullRequest
0 голосов
/ 01 марта 2020

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

"nonZero": { "regex": "^[1-9][0-9]*$",
                    "alertText": "* This field cannot be zero",
                    "alertTextCheckboxMultiple": "* Please select an option",
                    "alertTextCheckboxe": "* This checkbox is required",
                    "alertTextDateRange": "* Both date range fields are required"

Ответы [ 3 ]

1 голос
/ 01 марта 2020

Одним из способов достижения этого было бы использование следующего

^(([1-9]{1}|[\d]{2,})(\.[\d]+)?)$|^(0\.[\d]+)$

Regex Demo

Где

  • ^(0\.[\d]+)$ => для чисел, где 0 < x < 1
  • ^(([1-9]{1}|[\d]{2,})(\.[\d]+)?)$ Остальные положительные числа

Выход

2131 => Valid
2.3434 => Valid
0.45 => Valid
123 => Valid

234. => Invalid
.5234 => Invalid
a => Invalid
-123123 => Invalid
1 голос
/ 02 марта 2020

Это будет работать и является самым коротким решением:

^-?\d+$|^-?\d+.\d+$

См. Пример здесь -> RegexTester

0 голосов
/ 01 марта 2020

Думаю, вы забыли добавить десятичную часть в регулярное выражение. Это должно быть примерно так:

"^ [1-9] [0-9] * (\. [0-9] +)? $"

Backsla sh (символ escapr) означает, что точка (.) буквально является точкой, потому что точка имеет некоторое значение для регулярного выражения. Парантезис состоит в том, чтобы сгруппировать часть регулярных выражений, чтобы получить ее.

Знак вопроса говорит о том, что эта группа может существовать или не существовать.

Таким образом, регулярное выражение - это последовательность символов, первая из которых 1-9, некоторые символы от 0-9 и точка & некоторые цифры, которые могут или не могут существовать.

Но обратите внимание, что точка находится в парантезе, поэтому, если она существует, должна существовать и десятичная дробь. Знак плюс говорит о том, что по крайней мере один ди git должен существовать, если точка существует

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