Loading...
Обучение/Помощь новичкам | Валидация пароля
php
   if(!filter_var($_POST['password'], FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^.{8,}$/']]))   
Русскими символами от 4 пропускает , как исправить? Или лучше так?
php
   if(mb_strlen($_POST['password'], 'UTF-8') < 8)   

________
посл. ред. 01.01.2024 в 01:28; всего 2 раз(а); by SNEG
как вариант
php
   if (!filter_var($_POST['password'], FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^.{8,}$/u']])) { }   
можно использовать модификатор u в регулярном выражении для поддержки UTF-8
php
   if (mb_strlen($_POST['password'], 'UTF-8') < 8) { }   
уже поддерживает UTF-8
php
   { }   
для обработки ошибок если требуется
Ramirez , как лучше регуляркой или через mb_strlen ?
________
посл. ред. 01.01.2024 в 02:00; всего 1 раз(а); by SNEG
SNEG (1 янв 2024, в 2:00)
Ramirez , как лучше регуляркой или через mb_strlen ?
ну mb_strlen сразу читает utf-8 без каких либо модификаторов. А вообще, оба варианта рабочие.
SNEG (1 янв 2024, в 2:00)
Ramirez , как лучше регуляркой или через mb_strlen ?
mb_strlen предназначена для работы с многобайтными строками в UTF-8. filter_var использует стандартный фильтр, что может быть удобным в дальнейшем . Но если тебе мало знаком фильтр , лучше тогда используй однострочный mb_strlen. А там решать разработчику конечно же
Онлайн: 2
Время:
Gen. 0.1125
(c) Bym.Guru 2010-2026