Mám regex, ktorý bol napísaný pre moje heslá:
~^[a-z0-9!@#$%^&*()]{8,16}$~i
Má zodpovedať reťazcom alfanumerických prvkova symboly s 8 až 16 znakmi. Teraz musím odstrániť požiadavku na minimálnu a maximálnu dĺžku, pretože potrebujem rozdeliť chybové správy pre užívateľskú prívetivosť - pokúsil som sa iba časť {8,16} vytiahnuť, ale potom to zlomí. Ako by som to urobil? Vďaka vopred.
odpovede:
2 pre odpoveď č. 1Beriem to za to, že vykonávate samostatné kontroly príliš dlhých alebo príliš krátkych reťazcov a tento regulárny výraz iba zaisťuje, aby neexistovali žiadne neplatné znaky. Mali by ste to urobiť:
~^[a-z0-9!@#$%^&*()]+$~i
+
prostriedky jeden alebo viac, *
prostriedky nula alebo viac; pravdepodobne nezáleží na tom, ktorý používate.
Zbavil som sa aj zbytočných spätných lomiek; žiadna z týchto postáv nemá v triede znakov žiadny špeciálny význam (vo vnútri hranatých zátvoriek).