![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
witam ten kawalek ma sprawdzac czy uzytkownik poprawnie wpisal w formularz informacje zgodnie z informacja , informacja , infromacja itd...
niestety zawsze pokazuje ze sa zle wpisane nawet przy np: sport,gry,muzyka co jest z nim nie tak? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
to Ci zadziała dla takiej wartości: sport,
żeby było uniwersalne, rozbij zmienną na tablicę za pomocą explode (jako argument podaj przecinek), następnie przeleć po tablicy i sprawdzaj każdy element za pomocą Twojego wyrażenia (tylko usuń z niego ten przecinek) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
hm a niedaloby sie zrobic tego prosciej tj. tak jak teraz chce? czemu nie działa danie tego w nawias? specjalnie tak to zrobilem bo w wikibooksach pisali ze taki trik pozwala operowac na ciagu, np (abc)+ akceptuje abc, abcabc, abcabcabc...
PS sprawdzilem wlasnie i dla sport, tez wywala blad :P Ten post edytował michat34 4.09.2012, 20:12:14 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 98 Pomógł: 33 Dołączył: 10.05.2011 Skąd: Krak Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej jest to zrobić tak jak Pawel_W napisał, bo i tek musisz to potem rozbić. Napisu "sport," nie dopasuje, bo Twój wzorzec pasuje do napisów, w których pojedyńcze litery są oddzielone przecinkiem. Rozwiązanie wyglądałoby jakoś tak "/^([a-zA-Z]+)(, *[a-zA-Z]+)*/".
Ten post edytował droslaw 4.09.2012, 21:01:46 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Bo wyrażenie jest źle napisane.
![]() 1. W nawiasach kwadratowych masz litery (małe i wielkie) i cyfry - dopasuje do wzorca wtedy, gdy jeśli znajdzie JEDEN Z WYMIENIONYCH ZNAKÓW (jeden, nie "wiele" - dla "wiele" trzeba użyć np. magicznego plusa, albo konstrukcji {2,5}) 2. Za nawiasem kwadratowym masz przecinek (backslash imho niepotrzebny) 3. Wszystko to masz wzięte w nawias okrągły (czyli grupowanie - naprawdę potrzebujesz grupowania?) 4. Za nawiasem okrągłym masz "+" (dopasuj do jednego lub więcej wystąpień). No i wyrażenie dopasuje, ale tylko do JEDNEJ LITERY LUB CYFRY oddzielonej przecinkiem. Który to ciąg może wystąpić wielokrotnie. Tobie byłoby poptrzebne imho coś takiego: 1. '/[0-9A-Za-z]+,*/' - NIEZEROWY (min. 1 znak) ciąg liter i cyfr zakończony OPCJONALNYM ('*') przecinkiem 2. '/[0-9A-Za-z,]+/' - niezerowy (j.w) ciąg znaków składających się z liter, cyfr i przecinka 3. lub wręcz (jeśli dopuszczasz stosowanie "_")... '/\w+,*/' (a to jako ćwiczenie odszyfruj sam - pod hasłem "PCRE regex syntax" lub "pattern syntax") Pisane na kolanie, poeksperymentuj. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
to jest niemożliwe do wykonania w ten sposób
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:01 |