Какова “Лучшая” американская Валюта RegEx?

46
задан Leandro 19 August 2018 в 23:50
поделиться

3 ответа

вот некоторый материал от производителей Regex Buddy. Они прибыли из библиотеки, таким образом, я уверен, что они были полностью протестированы.

Число: сумма Валюты (обязательные центы) Дополнительные тысячи разделителей; обязательная двухразрядная часть

Match; JGsoft:
^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}$

Число: сумма Валюты (дополнительные центы) Дополнительные тысячи разделителей; дополнительная двухразрядная часть

Match; JGsoft:
^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?$

Число: сумма Валюты США & ЕС (дополнительные центы) Может использовать американский стиль 123 456,78 нотаций и европейский стиль 123.456,78 нотаций. Дополнительные тысячи разделителей; дополнительная двухразрядная часть

Match; JGsoft:
^[+-]?[0-9]{1,3}(?:[0-9]*(?:[.,][0-9]{2})?|(?:,[0-9]{3})*(?:\.[0-9]{2})?|(?:\.[0-9]{3})*(?:,[0-9]{2})?)$
84
ответ дан Keng 26 November 2019 в 20:15
поделиться

Я нашел это регулярное выражение на строке по www.RegExLib.com Kirk Fuller, Gregg Durishan

, я использовал его успешно для нескольких прошлых лет.

"^\$?\-?([1-9]{1}[0-9]{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\-?\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\(\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))\)$"
15
ответ дан Dorababu Meka 26 November 2019 в 20:15
поделиться

Не полностью протестированный вообще (я просто записал его!), но, кажется, ведет себя правильно:

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

Набор тестов:

0
1
33
555
4,656
4656
99,785
125,944
7,994,169
7994169
0.00
1.0
33.78795
555.12
4,656.489
99,785.01
125,944.100
-7,994,169
-7994169.23 // Borderline...

Wrong:
000
01
3,3
5.
555,
,656
99,78,5
1,25,944
--7,994,169
0.0,0
.10
33.787,95
4.656.489
99.785,01
1-125,944.1
-7,994E169

Примечание: Ваша Система. Десятичное число является зависимым локали, трудно для создания в regex, кроме, возможно, при создании его. Я принял цифры, сгруппированные три, даже если в некоторых культурах (локали), там различные правила.
Это тривиально для добавления пробела вокруг этого.

7
ответ дан PhiLho 26 November 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: