Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Регулярное выражение для проверки денежной суммы (http://forum.oszone.net/showthread.php?t=70137)

BuilderMan 21-08-2006 15:34 475117

Регулярное выражение для проверки денежной суммы
 
Помогите написать регулярное выражение
Как можно разрешить данные вида 0,1 или 0.1 или 0,01 или 0.01 или 1.00
но запретить 0,00 или 0.00 или -0,01 или 0,001 или 0.001

Vlad Drakula 21-08-2006 15:42 475122

я думаю что чтото вроде этого: ([1-9][0-9]*[,.][0-9][0-9] | 0[,.][0-9]?[1-9])

BuilderMan 21-08-2006 15:54 475129

я нашел вот такое
(^[0-9]*[1-9]+[0-9]*\.[0-9]*$)|(^[0-9]*\.[0-9]*[1-9]+[0-9]*$)|(^[0-9]*[1-9]+[0-9]*$)
но оно не ограничивает после запятой 2 знака и запятую не берет только точку
ну запятая лечится как я понимаю так
(^[0-9]*[1-9]+[0-9]*[\.,][0-9]*$)|(^[0-9]*[\.,][0-9]*[1-9]+[0-9]*$)|(^[0-9]*[1-9]+[0-9]*$)
остается обрезать дробную часть

Vlad Drakula 21-08-2006 16:01 475134

^([1-9][0-9]*[,.][0-9][0-9] | 0[,.][0-9]?[1-9])$

XCodeR 21-08-2006 17:32 475178

^[01]?[,\.][0-9]*$

Vlad Drakula 21-08-2006 20:50 475249

XCodeR
ваше выражение не съест 2,0...
а 0,00 назовет правильным...
баг однако ;)

XCodeR 21-08-2006 22:00 475266

Vlad Drakula
Цитата:

ваше выражение не съест 2,0....
это же почему?...
первый символ до точки либо 0, либо 1...
Цитата:

а 0,00 назовет правильным...
да... это есть....

P.S.
Цитата:

^([1-9][0-9]*[,.][0-9][0-9] | 0[,.][0-9]?[1-9])$
точку(.) надо слешовать....
тогда Ваш вариант, будет предпочтительней...

;)

Vlad Drakula 22-08-2006 04:03 475341

XCodeR
помнится в нутри квадратных скобок нету необходимости ескейпить точку.

E-mail 22-08-2006 04:16 475344

Vlad Drakula это смотря какая она идет по счету сначала и после чего.
лутше все эскейпить)

Vlad Drakula 23-08-2006 11:24 475863

E-mail
Цитата:

Vlad Drakula это смотря какая она идет по счету сначала и после чего.
лутше все эскейпить)
читаем доки... лишний эскейпинг может привести к непредсказуемым результатам!


Время: 20:41.

Время: 20:41.
© OSzone.net 2001-