• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Optymalizacja kodu jQuery sprawdzajacego poprawność hasła

Object Storage Arubacloud
0 głosów
136 wizyt
pytanie zadane 2 sierpnia 2016 w JavaScript przez Śmieszek_;3 Użytkownik (780 p.)
edycja 2 sierpnia 2016 przez Śmieszek_;3

Hej.

Napisałem kod sprawdzający hasło i prosiłbym Was o wskazówki jak ten kod zoptymalizować, bo te if else if dziwnie wygląda, wiec pewnie można to zrobić jakoś łatwiej :D

<script>
$(document).ready(function() {
	
	$('#password').blur(function() {
        var passwordInputValue = $('#password').val();
        var errorSpan = $('.error');
        var minLength = /.{8}/
        var oneLetterRegExp = /[a-z]+/
        var oneBigLetterRegExp = /[A-Z]+/
        var oneDigitRegExp = /[0-9]+/
        var oneSpecialSign = /.[^0-9a-zA-Z]/
        if (passwordInputValue.search(minLength) == -1) {
            errorSpan.text('Hasło powinno mieć co najmniej 8 znaków')
        } else if (passwordInputValue.search(oneLetterRegExp) == -1) {
            errorSpan.text('Hasło powinno mieć co najmniej jedną małą literę')
        } else if (passwordInputValue.search(oneBigLetterRegExp) == -1) {
            errorSpan.text('Hasło powinno mieć co najmniej jedną dużą literę')
        } else if (passwordInputValue.search(oneDigitRegExp) == -1 ) {
            errorSpan.text('Hasło powinno mieć co najmniej jedną cyfrę')
        } else if (passwordInputValue.search(oneSpecialSign) == -1) {
            errorSpan.text('Hasło powinno mieć minimum jeden znak specialny.')
        } else {
            errorSpan.text('Hasło przeszło walidację.')
        }
    })
})
</script>
</head>
<body>
	<span class="error"></span><br>
Podaj hasło: <input type="text" id="password"><br>
</body>

 

Aha i czy jest sens trzymać te regexy w zmiennych, czy lepiej wrzucić po prostu do search() ?

1 odpowiedź

+1 głos
odpowiedź 2 sierpnia 2016 przez xmentor Nałogowiec (49,520 p.)
A czemu nie zrobisz jednego wyrażenia regularnego?

Poza tym, część walidacji można już przeprowadzić dodając atrybuty do inputów np.: required, pattern.
komentarz 2 sierpnia 2016 przez Śmieszek_;3 Użytkownik (780 p.)
Jednego nie mogę zrobić, bo chodzi mi oto, że jak ktoś wyśle hasło niepoprawne, to dostanie komunikat czego konkretnie brakuje. Np, brakuje znaku specjalnego, duzej litery. Co prawda mógłbym to określić w jednym komunikacie błędu wymieniając co powinno mieć hasło, jednak tak mi się bardziej podoba, ot taki bajer ;)

Chodzi mi bardziej o poćwiczenie regex'ów (jezeli macie pomysły na jakieś wyrazenia regularne zeby potrenowac to mozecie podac ;p), ale skoro już zrobiłem taki formularz z taką weryfikacją, to chciałbym wiedzieć, czy dałoby radę go zoptymalizować, żeby w przyszłości stworzyć lepszy kod.
1
komentarz 2 sierpnia 2016 przez kubaapk Nałogowiec (44,270 p.)
Optymalizacją będzie jeden regexp. ;)
komentarz 2 sierpnia 2016 przez xmentor Nałogowiec (49,520 p.)

Nie wiem czasem czy metoda reg.test(string) nie byłaby szybsza od string.search(reg)

Wydaje mi się, że gdzieś o tym czytałem na stackoverflow.

Jednego nie mogę zrobić, bo chodzi mi oto, że jak ktoś wyśle hasło niepoprawne, to dostanie komunikat czego konkretnie brakuje. Np, brakuje znaku specjalnego, duzej litery. Co prawda mógłbym to określić w jednym komunikacie błędu wymieniając co powinno mieć hasło, jednak tak mi się bardziej podoba, ot taki bajer ;)

Tutaj np. możesz wyświetlać jeden komnunikat o błędnym haśle(tzn. nie pasującym do wyrażenia) a obok inputa mieć jakąś podpowiedź.

Lub jakiś mały znaczek z "?" I po najechaniu na niego wyświetlałaby się podpowiedź, też fajne rozwiązanie.

Podobne pytania

0 głosów
3 odpowiedzi 342 wizyt
pytanie zadane 18 kwietnia 2018 w JavaScript przez SzukającyPrzygód Bywalec (2,310 p.)
0 głosów
2 odpowiedzi 388 wizyt
0 głosów
2 odpowiedzi 204 wizyt

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...