Slaptažodžio regeksą turi sudaryti ne mažiau kaip aštuoni simboliai, bent vienas skaičius, mažosios ir didžiosios raidės bei specialieji simboliai.

Noriu, kad tai patikrintų reguliarioji išraiška:

slaptažodį sudaro ne mažiau kaip aštuoni simboliai, įskaitant bent vieną skaičių, ir jame yra mažųjų ir didžiųjų raidžių bei specialiųjų simbolių, pavyzdžiui, #, ?, !.

Tai negali būti jūsų senasis slaptažodis arba jame negali būti jūsų vartotojo vardo, "slaptažodžio" arba "tinklalapio pavadinimo".

O čia yra mano patvirtinimo išraiška, kurioje yra aštuoni simboliai, įskaitant vieną didžiąją raidę, vieną mažąją raidę ir vieną skaičių arba specialųjį simbolį.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

Kaip galėčiau užrašyti, kad gairę turi sudaryti aštuoni simboliai, įskaitant vieną didžiąją raidę, vieną specialųjį simbolį ir skaitmeninį ženklą?

Ne mažiau kaip aštuoni simboliai, bent viena raidė ir vienas skaičius:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"

Ne mažiau kaip aštuoni ženklai, bent viena raidė, vienas skaičius ir vienas specialusis simbolis:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"

Ne mažiau kaip aštuoni ženklai, bent viena didžioji raidė, viena mažoji raidė ir vienas skaičius:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

Ne mažiau kaip aštuoni ženklai, bent viena didžioji raidė, viena mažoji raidė, vienas skaičius ir vienas specialusis ženklas:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"

Mažiausiai aštuoni ir daugiausiai dešimt ženklų, bent viena didžioji raidė, viena mažoji raidė, vienas skaičius ir vienas specialusis simbolis:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
Komentarai (22)

Šią regeksą galite naudoti su keliais lookahead assertions (conditions):

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

Šis regeksas užtikrins šių taisyklių vykdymą:

  • Bent viena didžioji raidė angliška raidė, (?=.*?[A-Z])
  • Bent viena mažoji angliška raidė, (?=.*?[a-z])
  • Bent vienas skaitmuo, (?=.*?[0-9])
  • Bent vienas specialusis simbolis, (?=.*?[#?!@$%^&*-])
  • Ne mažiau kaip aštuonių simbolių ilgio .{8,} (su inkarais)
Komentarai (36)

Tik nedidelis patobulinimas @anubhava's atsakymas: Kadangi specialieji simboliai yra tik tie, kurie yra klaviatūroje, naudokite tai bet kokiam specialiajam simboliui:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

Šis regeksas užtikrins šių taisyklių vykdymą:

  • Bent viena didžioji angliška raidė
  • Bent viena mažoji angliška raidė
  • Bent vienas skaitmuo
  • bent vienas specialusis simbolis
  • Ne mažiau kaip aštuonių simbolių ilgio
Komentarai (3)