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.0935
(c) Bym.Guru 2010-2025