poniedziałek,
Wykrywanie unikalnych znaków
Opisywany mechanizm może być przydatny podczas szacowania siły wprowadzonego hasła.
Kod HTML
<div id="tester">
<label>Wprowadź tekst: <input type="text"></label>
<div style="width: 0; height: 10px;"></div>
</div>
Kod JavaScript
Koncepcja przedstawionego skryptu jest prosta. Po wprowadzeniu kolejnego znaku uruchamiana jest funkcja, w której wprowadzony w pole tekst jest zapisywany w zmiennej o nazwie s. Druga zmienna (u) na początku jest „pusta”. W pętli unikalne znaki dodawane są do zmiennej u, przy każdym znaku wprowadzonym do pola input (kolejnym kroku pętli) następuje weryfikacja, czy nie został on już dodany do zmiennej u, jeśli nie, zostaje dołączony do łańcucha w zmiennej u. Mechanizm weryfikacji zrealizowano przy pomocy metody indexOf(). Jest ona typowa dla tablic, ale można użyć jej także z łańcuchami znaków. Metoda indexOf() szuka przekazanego argumentem znaku, jeśli próba się nie powiedzie, zwraca -1.
W celu wyświetlenia wyniku działania skryptu uzyskany łańcuch unikalnych znaków zostaje podzielony na pojedyncze składniki (split()), aby można je był objąć cudzysłowami (wśród wyników może być np. spacja), co zrealizowano za pomocą metody join() i dołączenia odpowiednich znaków na początku i końcu wygenerowanego łańcucha.
document.querySelector('#tester input').addEventListener('keyup', function() {
var u = '';
var s = this.value;
for(i=0;i<s.length;i++) {
if(u.indexOf(s[i])==-1) u += s[i];
}
document.querySelector('#tester div').innerHTML = 'Unikalne znaki: ' + '"' + (u.split('').join('", "')) + '"';
})