RegExp Поместите ноль (0) после трех десятичных знаков - PullRequest
0 голосов
/ 14 февраля 2019

Hi all i need all these possible cases to be valid

0.001
0.320
0.009
0.0
0.3
0.9

let reqDecimal = / ^ (0 (. \ D +)? | 1 (.0 +)?) $ /;Я пробовал выше код необходимо, чтобы ожидаемые 3 десятичных значения не более.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Возможно, вы можете использовать:

^(?:1|0)\.\d{1,3}$

Если вы хотите остаться на или ниже 1.000:

^0\.\d{1,3}\b|1\.0{1,3}\b$

Примеры :

https://regex101.com/r/wKZseY/1
https://regex101.com/r/wKZseY/2

0 голосов
/ 14 февраля 2019

Просто замените оба знака плюс на {1,3):

/^(0(.\d{1,3})?|1(.0{1,3})?)$/

Это гарантирует, что между каждой десятичной дробью будет от 1 до 3 цифр:

const regex = /^(0(.\d{1,3})?|1(.0{1,3})?)$/;
const amounts = [
  "0.001",
  "0.320",
  "0.009",
  "0.0",
  "0.3",
  "0.9",
  "0.",
  "0.0000",
  "1.",
  "1.000",
  "1.0000"
]

amounts.forEach(function(amount) {
  console.log(amount, "=", regex.test(amount));
});

Это также можно увидеть, работая над Regex101 здесь .

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