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

Poprawność wpisywanego hasła - JS

VPS Starter Arubacloud
0 głosów
1,257 wizyt
pytanie zadane 13 maja 2018 w JavaScript przez shizeerr Początkujący (260 p.)
<script type="text/javascript">		
	document.querySelector("#przycisk").addEventListener("click", function(){
		var haslo = document.querySelector("#haslo");
		var wyr_reg = /^[A-Z][a-zA-Z0-9]{7,15}$/;
			if (wyr_reg.test(haslo)) {
				document.getElementById("wynik").innerHTML = 'Hasło jest OK!';
			} else {
				document.getElementById("wynik1").innerHTML = "Popraw hasło!";
			}
	});
</script>

Napisałem taki kod, który ma sprawdzić czy hasło zaczyna się dużą literą, czy ma jakąś liczbę oraz czy ma długość od 8 do 16 cyfr. Po wciśnięciu przycisku wyświetla się tylko opcja z else, czyli Popraw hasło.. (nawet jeśli hasło jest wpisywane poprawnie)

Mógłby mi ktoś powiedzieć gdzie jest błąd?

2 odpowiedzi

0 głosów
odpowiedź 13 maja 2018 przez pablop76 VIP (123,060 p.)
edycja 13 maja 2018 przez pablop76
 
Najlepsza
Twoje haslo to jest podejrzewam input, a ty musisz sprawdzić jego value.

A poza tym wynik możesz wyśwlietlić w tym samym divie. Przecież dwa komunikaty się nie wyświetlą.
komentarz 13 maja 2018 przez shizeerr Początkujący (260 p.)
kurde, głupi błąd, dziękuję
+1 głos
odpowiedź 13 maja 2018 przez Tomek Sochacki Ekspert (227,510 p.)

czy hasło zaczyna się dużą literą, czy ma jakąś liczbę oraz czy ma długość od 8 do 16 cyfr

Nie sprawdzasz takich warunków :)

Zobacz:

const reg = /^[A-Z][a-zA-Z0-9]{7,15}$/;

reg.test('Tomek123'); //true zgodnie z oczekiwaniami
reg.test('TomekXXX'); //true mimo, że nie mam żadnej cyfry!

Na szybko można by dodać:

const reg = /^(?=.*\d)[A-Z][a-zA-Z0-9]{7,15}$/;

reg.test('Tomek123'); //true warunki spełnione
reg.test('TomekXXX'); //false bo brak cyfry
reg.test('tomek123'); //false bo nie zaczynamy od wielkiej litery

Ale pytanie dlaczego narzucasz, że hasło musi zaczynać się wielką literą? Moim zdaniem lepiej dać np. warunek wystąpienia obowiązkowo jednej wielkiej litery, jednej cyfry i dowolnych znaków z założonego zakresu, przy czym całe hasło ma mieć od 8 do 16 znaków. Nie określałbym jednak położenia tej wielkiej litery czy cyfry, niech to już user sam zrobi, tym bardziej, że może mieć jakieś swoje ulubione hasło spełniające te kryteria a obowiązek rozpoczęcia wielką literą może to zaburzyć, zupełnie niepotrzebnie.

Podobne pytania

0 głosów
1 odpowiedź 761 wizyt
pytanie zadane 5 listopada 2018 w PHP przez xxkondzioxx15 Obywatel (1,440 p.)
0 głosów
1 odpowiedź 809 wizyt
0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 29 grudnia 2018 w PHP przez xxkondzioxx15 Obywatel (1,440 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...