Показать полную графическую версию : Регулярное выражение для проверки денежной суммы
BuilderMan
21-08-2006, 15:34
Помогите написать регулярное выражение
Как можно разрешить данные вида 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
я думаю что чтото вроде этого: ([1-9][0-9]*[,.][0-9][0-9] | 0[,.][0-9]?[1-9])
BuilderMan
21-08-2006, 15:54
я нашел вот такое
(^[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
^([1-9][0-9]*[,.][0-9][0-9] | 0[,.][0-9]?[1-9])$
Vlad Drakula
21-08-2006, 20:50
XCodeR
ваше выражение не съест 2,0...
а 0,00 назовет правильным...
баг однако ;)
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
XCodeR
помнится в нутри квадратных скобок нету необходимости ескейпить точку.
Vlad Drakula это смотря какая она идет по счету сначала и после чего.
лутше все эскейпить)
Vlad Drakula
23-08-2006, 11:24
E-mail
Vlad Drakula это смотря какая она идет по счету сначала и после чего.
лутше все эскейпить)
читаем доки... лишний эскейпинг может привести к непредсказуемым результатам!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.