Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> klopot z wyrazeniem regularnym
adas667
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.09.2010

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


Witam mam problem z wyrazeniem regularnym a konkretnie Chodzi o to że nazwa uzytkownika moze posidać tylko litery (od 5 do 10) a w moim przypadku jak są same cyferki to ok pokazuje komunikat "Nazwa użytkownika może mieć od 5 do 10 liter" ale jak sa litery i chociaż jedna cyferka to przechodzi dalej a nie powinno. oto fragmento kodu i proszę o korekte ferelnej podkreślonej linijki.


function sprawdz (form){
var user=form.nazwa.value;
if ((user.length<5) || (user.length>10)) {
document.getElementById("zlaNazwa").innerHTML = "Nazwa użytkownika może mieć od 5 do 10 liter";
document.getElementById("zlaNazwa").className = "wyroznienieCzerwone";
form.nazwa.focus;
return false; }
else { document.getElementById("zlaNazwa").innerHTML = "";}
if (form.haslo.value.length < 7) {
document.getElementById("opisHasla").innerHTML = "Proszę wprowadzić hasło co najmniej 7 literowe.";
document.getElementById("opisHasla").className = "wyroznienieCzerwone";
form.haslo.focus();
return false ; }
if (!((user.match(/[a-z]/)) || (user.match(/[A-Z]/)))) {
document.getElementById("zlaNazwa").innerHTML = "Nazwa użytkownika zawierać tylko litery";
document.getElementById("zlaNazwa").className = "wyroznienieCzerwone";
form.nazwa.focus;
return false; }
else { document.getElementById("zlaNazwa").innerHTML = ""; }
if (form.haslo.value!=form.haslo2.value) {
document.getElementById("zgodneHasla").innerHTML = "Hasła nie są zgodne!";
document.getElementById("zgodneHasla").className = "wyroznienieCzerwone";
return false; }
return true; }
Go to the top of the page
+Quote Post
Zigi
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 20.11.2004

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


Przechodzi dalej ponieważ Twoje wyrażenia regularne sprawdzają czy w nazwie użytkownika występuje gdziekolwiek jakaś litera z alfabetu łacińskiego. Musisz dodać do wyrażenia regularnego warunki, aby cały przeszukiwany tekst znalazł się pod wpływem wyrażenia regularnego i dodać ile razy znaki mogą w nim wystąpić. Całość można zrobić jednym wyrażeniem a nie dwoma jak to uczyniłeś.
Go to the top of the page
+Quote Post
devnul
post
Post #3





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


@Zigi: wyrażenia regularne to dla niektórych czarna magia więc Twoje tłumaczenie jak sądzę wiele mu nie powiedziało

a ze dziś mam dobry dzień to wyjątkowo "gotowiec"
[JAVASCRIPT] pobierz, plaintext
  1. if (!(user.match(/^[a-zA-Z]+$/))) {
  2. document.getElementById("zlaNazwa").innerHTML = "Nazwa użytkownika może zawierać tylko litery";
  3. document.getElementById("zlaNazwa").className = "wyroznienieCzerwone";
  4. form.nazwa.focus;
  5. return false; }
[JAVASCRIPT] pobierz, plaintext

albo w wersji kompaktowej:
[JAVASCRIPT] pobierz, plaintext
  1. if (!(user.match(/^[a-zA-Z]{5,10}$/))) {
  2. document.getElementById("zlaNazwa").innerHTML = "Nazwa użytkownika może zawierać tylko litery i składać się z 5 do 10 znaków";
  3. document.getElementById("zlaNazwa").className = "wyroznienieCzerwone";
  4. form.nazwa.focus;
  5. return false; }
[JAVASCRIPT] pobierz, plaintext


Ten post edytował devnul 17.09.2010, 23:16:30
Go to the top of the page
+Quote Post

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: 18.09.2025 - 17:24