Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nie działające wyrażenie regularne, Może ktoś ma pomysł gdzie tu jest błąd
romseb
post 27.09.2012, 13:43:07
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


Witam

Serdecznie proszę was o pomoc bo szukam i szukam i nie mogę znaleźć błędu

Ułożyłem sobie taki wzorzec wyrażenia regularnego:

^[a-zA-Z]{1}[a-zA-Z0-9-]{1,19}$

które ma sprawić, że zapis s-4 jest prawidłowy ale już 4-4 nieprawidłowy.

I teraz tak: jak wpisuję toto do formularza wyskakuje alert, że r s-4 jest nieprawidłowe.

A wpisując powyższy wzorzec do testera wychodzi że s-4 jest oki.

Zaznaczam, że zmajstrowany w js wzorzec wkleiłem do testera, więc w dwóch miejscach użyłem tego samego

Testowałem tym, świetne.

http://www.pagecolumn.com/tool/regtest.htm

Gdzie zrobiłem błąd?

Pozdrawiam i dziękuję

R
Go to the top of the page
+Quote Post
redeemer
post 27.09.2012, 13:57:46
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


U mnie
[JAVASCRIPT] pobierz, plaintext
  1. /^[a-zA-Z]{1}[a-zA-Z0-9-]{1,19}$/.test('s-4');
[JAVASCRIPT] pobierz, plaintext
zwraca true. Pokaż kod.


--------------------
Go to the top of the page
+Quote Post
romseb
post 27.09.2012, 17:13:37
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 19.09.2007

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


Proszę. Tutaj jest ten sam wzorzec.

  1.  
  2. function ValidName(NamNum)
  3. {
  4. var RegExPattern = /^[a-zA-Z]{1}[a-zA-Z0-9-]{1,19}$/;
  5.  
  6. if (!(NamNum.match(RegExPattern)) || NamNum.length < 1)
  7. {
  8. document.getElementById("sugname").style.background="#FF0000";
  9. document.getElementById("sugname").style.color="#000000";
  10. document.getElementById('saveForm').disabled = true;
  11. alert("Wykryto nieprawidłowy znak, lub nazwa ma niewłaściwą długość!");
  12. //return false;
  13. }
  14. else
  15. {
  16. document.getElementById("sugname").style.color="#009900";
  17. document.getElementById("sugname").style.background="#E0E0E0";
  18. document.getElementById('saveForm').disabled = false;
  19.  
  20. //return true;
  21. }
  22. }



Pozdrawiam

romseb
Go to the top of the page
+Quote Post
Niktoś
post 27.09.2012, 17:55:18
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Wydaje mi się, żę problem nie tkwi w wyrażeniu regularnym lecz w linii:
  1. if (!(NamNum.match(RegExPattern)) || NamNum.length < 1)


Spróbuj użyć samo:
  1. if(!(NamNum.match(RegExPattern)){
  2.  
  3. }

aby wykluczyć ,że przeczenie !(not) nie tyczy się czasami całego warunku.
Go to the top of the page
+Quote Post
redeemer
post 27.09.2012, 18:00:37
Post #5





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Funkcja wygląda OK (działa u mnie i na ff i na chromie). Jesteś pewien, że przekazujesz argument do funkcji prawidłowo?

@Niktoś: Od tego są nawiasy wink.gif


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.05.2025 - 16:22