Регулярное выражение для числа c десятичными знаками и тысячным разделителем
мне нужно регулярное выражение для проверки числа, которое может содержать тысячи разделителей или десятичных знаков с помощью javascript.
Максимальное значение 9,999,999.99
Минимальное значение 0.01
Другие допустимые значения:
11,111
11.1
1,111.11
недопустимые значения:
1111
1111,11
,111
111,
Я искал повсюду без радости.
3 ответов
/^\d{1,3}(,\d{3})*(\.\d+)?$/
о минимальных и максимальных значений... Ну, я бы не стал делать это с регулярным выражением, но вы можете добавить lookaheads в начале:
/^(?!0+\.00)(?=.{1,9}(\.|$))\d{1,3}(,\d{3})*(\.\d+)?$/
Примечание: В данном 0,999.00
, Так что вы можете изменить его на:
/^(?!0+\.00)(?=.{1,9}(\.|$))(?!0(?!\.))\d{1,3}(,\d{3})*(\.\d+)?$/
что не позволило бы лидирующему 0.
Edit:
Тесты: http://jsfiddle.net/pKsYq/2/
((\d){1,3})+([,][\d]{3})*([.](\d)*)?
это сработало на нескольких, но я все еще изучаю регулярное выражение.
логика должна быть 1-3 цифры 0-1 раз, 1 запятая, а затем 3 цифры любое количество раз ,и один. затем любое количество цифр 0-1 раз
я использовал ниже regrex для следующих повторений -
^(?!0|\.00)[0-9]+(,\d{3})*(.[0-9]{0,2})$
- 0 и не разрешить .00.
- ','(разделитель тысяч) после 3 цифр.
- '.'(decimal до 2 знаков после запятой).