Pobieranie argumentów js - wyrażenie regularne

0

Witam
Mam takie zadanie:

Musisz sprawdzić wszystkie nazwy użytkowników w bazie danych. Oto kilka prostych zasad, których użytkownicy muszą przestrzegać, tworząc swoją nazwę użytkownika:

  1. W nazwach użytkowników można używać wyłącznie znaków alfanumerycznych.
  2. Jedyne liczby w nazwie użytkownika muszą znajdować się na końcu. Na końcu może być ich zero lub więcej.
  3. Litery nazwy użytkownika mogą być małe i wielkie.
  4. Nazwy użytkowników muszą mieć co najmniej dwa znaki. Dwuznakowa nazwa użytkownika może używać wyłącznie liter alfabetu jako znaków.

let username = "JackOfAllTrades";
let userCheck = /change/; // Change this line
let result = userCheck.test(username);

Tu są kolejne warunki:
Your regex should match JACK
Your regex should not match J
Your regex should match Jo
Your regex should match Oceans11
Your regex should match RegexGuru
Your regex should not match 007
Your regex should not match 9
Your regex should not match A1
Your regex should not match BadUs3rnam3
Your regex should match Z97

Rozwiązaniem jest :
const userCheck = /^[a-z]([0-9]{2,}|[a-z]+\d*)$/i;

Mógłby mi ktoś wytłumaczyć całe to wyrażenie ?

Wiem, że:
-aby można było zaznaczać duże i małe litery mamy znacznik i
-$ czyli znajdujemy ostatni wyraz w zdaniu

0

Ciąg znaków musi: zaczynać się (^) literą ([a-z]), potem musi być dwie cyfry lub więcej ([0-9]{2,}) lub (|) jedna lub więcej litera ([a-z]+) a po niej cyfra (\d) występująca 0 lub więcej (*) razy. Potem ciąg ma się zakończyć ($), a wielkość liter ma być ignorowana (/i).

Polecam https://regex101.com/, wpisujesz swój regexp i on ci go tłumaczy.

0

Dzięki ! Czy jest możliwość stworzenia jednego tematu, w którym będę zadawał pytania, żeby nie zaśmiecać dużą ilością tematów?

0

Jeżeli te obostrzenia odnośnie nadawanej nazwy użytkownika są istotne, musisz sprawdzić te dane ponownie po stronie serwera. Inaczej, prędzej, czy później możesz trafić na kreatywnego użytkownika, który obejdzie obostrzenia z JS i założy takie konto, jakie chce.

1 użytkowników online, w tym zalogowanych: 0, gości: 1