Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyrażenie regularne, prośba do znawcy tematu
yaro25
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.06.2017

Ostrzeżenie: (0%)
-----


Witam, dziękuje za zainteresowaniem tematem.


próbuje znaleść odpowiedźm, jak powinno wyglądać wyrażenie regularne do walidacji cyfry dziesiętnej, uwzględniające:
- tylko cyfry;
- przecinek, kropkę;
- nie mogące zarazem 0.00 lub 0,00

Bardzo będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Tak, tak, zrozumiałem, też mnie to rozbawiło.

Kod
(?!0+.0+$)\d+[\.|,]\d+


Wydaje mi się, że jest to dobre rozwiązanie (używanie regex) przy sprawdzaniu walidacji inline, np. dla patternów walidacji formularzy w HTML5.
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #3





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 16.12.2017, 20:01:20 ) *
Wydaje mi się, że jest to dobre rozwiązanie (używanie regex) przy sprawdzaniu walidacji inline, np. dla patternów walidacji formularzy w HTML5.

Do tego jest input typu number ze zmiennoprzecinkowym atrybutem step i odpowiednim min:

  1. <input type="number" step="0.01" min="0.01">


Cytat(Pyton_000 @ 16.12.2017, 20:03:11 ) *
masakra.... po co tak kombinować?

zamieniasz `,` na `.` a potem `(float)$liczba > 0`

i koniec.

Chyba nie do końca:

  1. $number = '666 dzikie węże';
  2. $number = str_replace(',', '.', $number);
  3. if ((float) $number > 0) {
  4. // Wszystko cacy. Czy aby na pewno?
  5. }
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 16.12.2017, 20:05:00 ) *
Do tego jest input typu number ze zmiennoprzecinkowym atrybutem step i odpowiednim min:

  1. <input type="number" step="0.01" min="0.01">

Pierwsze słyszę żeby input tego typu służył do walidacji i informował Cię, że wprowadzona wartość 0.00 lub 0,00 jest niepoprawna.
Jeśli będziesz chciał wprowadzać wartości ujemne, to zauważysz zapewne, że atrybut min na nic się tu nie zda.

Wciąż mam na myśli wykorzystanie patternu do walidacji na bieżąco i np. informowanie użytkownika, że wprowadził wartość nieprawidłową (czerwona ramka w polu ceny, itp.).
Go to the top of the page
+Quote Post

Posty w temacie
- yaro25   wyrażenie regularne   16.12.2017, 13:24:11
- - Tomplus   https://regex101.com/r/53nzyz/1 Może trochę pomoż...   16.12.2017, 18:48:02
- - yaro25   @Tomplus: dziękuje za sugestie. czy ktoś może coś...   16.12.2017, 19:23:00
- - trueblue   Kod(?!(0){1,}.0{1,})\d+...   16.12.2017, 19:33:09
- - SmokAnalog   Sprawdź czy liczba ma odpowiedni format, potem zam...   16.12.2017, 19:37:09
- - trueblue   W moim, a co za tym idzie Twoim, jest błąd. Może s...   16.12.2017, 19:42:18
- - SmokAnalog   Tak - dopatrzyłem się, że odrzuca np. 0.01. Nie mó...   16.12.2017, 19:51:01
- - trueblue   Tak, tak, zrozumiałem, też mnie to rozbawiło. Kod...   16.12.2017, 20:01:20
|- - SmokAnalog   Cytat(trueblue @ 16.12.2017, 20:01:20...   16.12.2017, 20:08:22
|- - trueblue   Cytat(SmokAnalog @ 16.12.2017, 20:05...   16.12.2017, 20:13:10
- - Pyton_000   masakra.... po co tak kombinować? zamieniasz ...   16.12.2017, 20:03:11
- - SmokAnalog   Moim zdaniem używanie wzorca do tego jest nieelega...   16.12.2017, 20:17:28
- - viking   Po co tak kombinować jak jest number_format?   16.12.2017, 20:47:56
|- - SmokAnalog   Cytat(viking @ 16.12.2017, 20:47:56 )...   16.12.2017, 20:51:50
- - viking   Chodziło o ten przykład wyżej z ifem. Natomiast uw...   16.12.2017, 20:59:59
|- - SmokAnalog   Cytat(viking @ 16.12.2017, 20:59:59 )...   17.12.2017, 00:56:48
- - trzczy   Serio macie problem z tym regexem? ;p[PHP] pobierz...   17.12.2017, 07:51:15
- - yaro25   Witam Panowie, dziękuje za tak liczne odpowiedzi:...   18.12.2017, 22:47:39
|- - SmokAnalog   Cytat(yaro25 @ 18.12.2017, 22:47:39 )...   19.12.2017, 00:57:17
|- - trzczy   Cytat(yaro25 @ 18.12.2017, 22:47:39 )...   19.12.2017, 15:13:18
- - Pyton_000   Chyba żartujesz.... Poprawna walidacja ma się opie...   18.12.2017, 23:30:06
- - yaro25   @Pyton_000: tak jak napisałem, po stronie serwera ...   19.12.2017, 09:32:55


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 06:34