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
Форумы портала PHP.SU :: Версия для печати :: Регулярное выражение для поиска запрещенных символов
Форумы портала PHP.SU » PHP » Регулярные выражения » Регулярное выражение для поиска запрещенных символов

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

1. jugo - 22 Октября, 2013 - 21:45:05 - перейти к сообщению
Здравствуйте! помогите правильно составить регулярное выражение.
допустимые символы a-z,а-я (любой регистр), '#' '+' ',' '.'
запрещенные символы(пишу через пробел): ~ ` ! @ $ % ^ & * () [] {} <> - _ ; : ' " / \ |
есть код:

PHP:
скопировать код в буфер обмена
  1.  
  2. function language_name()
  3. {
  4.     global $language_name;
  5.     $tmp = $_POST["language_name"];
  6.     $out;
  7.     $pattern; #запрещенные символы
  8.    $pattern2;# доступные символы
  9.  
  10.     if($tmp != NULL)#проверяю установлена ли переменная(isset неочень подходит)
  11.        {
  12.         $tmp = preg_replace('/\s/', '', $tmp);;#spaces in begin&end was deleted
  13.        if(preg_match_all($pattern, $tmp)!=0){$out.="Имеются запрещенные символы! ";}
  14.         else {
  15.               if(preg_match_all($pattern2,$tmp)==0) {$out.="Пустое поле! ";}#если доступные символы не введены
  16.              else{$language_name = $tmp;}
  17.              }
  18.         }
  19.     else { $out.="Пустое поле! "; echo $out;}
  20. }
  21.  
  22.  

помогите составить регулярное выражение для $pattern(запрещенные символы)
и для $pattern2(разрешенные символы)
2. Саныч - 22 Октября, 2013 - 21:55:29 - перейти к сообщению
Лучше опишите что должна делать ф-ция. Возможно регулярка вобще не нужна будет. Да и сама имеющаяся сейчас ф-ция - откровенная какашка...
3. jugo - 22 Октября, 2013 - 22:00:01 - перейти к сообщению
Саныч пишет:
Лучше опишите что должна делать ф-ция. Возможно регулярка вобще не нужна будет. Да и сама имеющаяся сейчас ф-ция - откровенная какашка...

Вообщем мне нужно обработать текстовое поле и в случае если:
*поле пустое:выдать сообщение что поле пустое
*если есть запрещенные символы(указанные выше): выдать соответствующее сообщение
*если все нормально ,то текст передается в $language_name ;
А функция =(откровенная какашка) ,потому что всего неделю занимаюсь php ,и как писать функции хорошо,-не знаю)
Все это нужно реализовать только в пхп. вывод сообщения через переменную $out (для меня показался очень удобным)
4. Саныч - 22 Октября, 2013 - 22:46:54 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function language_name()
  2. {
  3.     if (empty($_POST["language_name"])) {
  4.         echo 'Пустое поле!';
  5.     } else if (preg_match('#^[\da-z\#\,\.\+а-яё]+$#iu', $_POST["language_name"])) {
  6.         echo 'Все OK!';
  7.     } else {
  8.         echo 'Имеются запрещенные символы!';
  9.     }
  10. }
5. jugo - 22 Октября, 2013 - 22:52:21 - перейти к сообщению
Саныч пишет:

Спасибо Саныч! очень безопасная и короткая функция получилась,все работает)

 

Powered by ExBB FM 1.0 RC1