Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка символов строки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
bugmenot
Отправлено: 16 Июля, 2016 - 08:34:45
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




Подскажите пожалуйста, как сделать следующее: есть строка 4 символа.
Первые 2 символа должны быть цифрами, второе два - русские буквы в верхнем регистре.

Если это условие не выполняется для символа - заменить символ на случайный, остальные не тронув.

Спасибо.
 
 Top
Строитель Модератор
Отправлено: 16 Июля, 2016 - 14:32:12
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




bugmenot пишет:
Если это условие не выполняется для символа
Для какого конкретно символа из четырёх?
bugmenot пишет:
заменить символ на случайный
Опять же, на случайный буквенный, числовой?
 
 Top
bugmenot
Отправлено: 16 Июля, 2016 - 23:02:01
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




Должно быть например 11АА.
Если любой из символов не тот - менять на случайный соответствующий.
 
 Top
Строитель Модератор
Отправлено: 16 Июля, 2016 - 23:36:15
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




bugmenot пишет:
Должно быть например 11АА.
Если любой из символов не тот - менять на случайный соответствующий.
Попробуйте так
PHP:
скопировать код в буфер обмена
  1. $letrs = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё',
  2.     'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н',
  3.     'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х',
  4.     'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я'
  5. ];
  6.  
  7. $numbs = range(0, 9);
  8.  
  9. $input = '11АА';
  10.  
  11. for ($i = 0; $i < 4; $i++) {
  12.     $letr = mb_substr($input, $i, 1, 'UTF-8');
  13.     if ($i < 2 && !is_numeric($letr)) {
  14.         $input = preg_replace('~'. $letr .'~', $numbs[array_rand($numbs)], $input, 1);
  15.     }
  16.     if ($i >= 2 && is_numeric($letr) || mb_strtoupper($letr, 'UTF-8') != $letr) {
  17.         $input = preg_replace('~'. $letr .'~', $letrs[array_rand($letrs)], $input, 1);
  18.     }
  19. }
  20.  
  21. echo $input;

(Отредактировано автором: 17 Июля, 2016 - 10:59:26)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB