/ / Úpravy regulárneho výrazu, ktorý nie je môj, nie ste si istí, ako ho prispôsobiť podľa potrieb - php, regex, string-length

Editácia regex, že nie je moje, neviete ako upraviť pre potreby - php, regex, dĺžka reťazca

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ď č. 1

Beriem 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).