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]   

> Описание: Запреть писать латинские буквы, цифры, символы
kuller
Отправлено: 06 Ноября, 2009 - 15:22:02
Post Id



Частый посетитель


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


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




Никак не могу разобраться с регулярными вырожениями. второй день пробую сделать проверку. помогите пожалуста. Надо разрешить писать в форму только русские буквы, всё остальное нельзя
 
 Top
Nestor
Отправлено: 06 Ноября, 2009 - 15:47:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


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




if(preg_match("/[A-Za-z]/i",$string)){
die('Russian only');
} elseif(preg_match("/[А-Яа-я]/i",$string)){
//Ok
} else {}

(Отредактировано автором: 06 Ноября, 2009 - 18:37:52)



-----
Aurus CMS
 
 Top
kuller
Отправлено: 06 Ноября, 2009 - 16:41:49
Post Id



Частый посетитель


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


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




Nestor пишет:
if(preg_match("[A-Za-z]",$string)){
die('Russian only');
} elseif(preg_match("[А-Яа-я]",$string)){
//Ok
} else {}

делал так. не работает.
и так делал
1. if(preg_match("/[A-Za-z]/",$name))]
2. if(preg_match("/[A-Za-z]$/",$name))
и подавление ошибок делал. на денвере не хочет работать, а на хосте нет возможности проверить
 
 Top
JustUserR
Отправлено: 06 Ноября, 2009 - 16:47:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Помоему регулярные выражения не очень хорошо работают с русскими буковками - так как кодировка по существу может отличаться


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
kuller
Отправлено: 06 Ноября, 2009 - 17:02:21
Post Id



Частый посетитель


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


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




JustUserR, эт чего значит, что при проверке кодировка может измениться? если да, как можно узнать на какую кодировку меняется? идейка одна появилась!!!
 
 Top
Nestor
Отправлено: 06 Ноября, 2009 - 18:35:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $a = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  4. foreach ($a as $letter){
  5.         if (!is_bool(stripos($text,$letter))) {
  6.                 die('Not allowed!');
  7.         }
  8. }
  9.  

А в регулярке я ошибку сделал Радость

(Отредактировано автором: 06 Ноября, 2009 - 18:36:08)



-----
Aurus CMS
 
 Top
kuller
Отправлено: 06 Ноября, 2009 - 19:00:09
Post Id



Частый посетитель


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


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




Nestor пишет:

А в регулярке я ошибку сделал Радость

видел вроде ошибку, там где слеш /i а надо так i/ правильно? слешом обозначается часть........ммм.... регулярного вырожения ??? Непонял! а значит i должно быть перед / ??? Непонял!
чёт тако вроде вчера читал.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  3. foreach ($a as $letter){
  4.         if (!is_bool(stripos($text,$letter))) {
  5.                 die('Not allowed!');
  6.         }
  7. }

спасиб работает
 
 Top
Nestor
Отправлено: 06 Ноября, 2009 - 19:34:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


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




не , я уже исправил...я слэш забыл


-----
Aurus CMS
 
 Top
SAD
Отправлено: 06 Ноября, 2009 - 20:27:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




к этой теме, а как проверить, чтобы в строке были только числа?
 
 Top
Ch_chov
Отправлено: 06 Ноября, 2009 - 20:36:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




preg_match('/^[\d]+$/', $number);
 
 Top
SAD
Отправлено: 06 Ноября, 2009 - 20:38:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




самое оно, спасибо
 
 Top
Ch_chov
Отправлено: 06 Ноября, 2009 - 21:30:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




Цитата:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  3. foreach ($a as $letter){
  4.         if (!is_bool(stripos($text,$letter))) {
  5.                 die('Not allowed!');
  6.         }
  7. }

Примерно тоже самое
PHP:
скопировать код в буфер обмена
  1. for($i = 'a'; $i != 'aa'; $i++)
  2.   if(stripos($text, $i) !== FALSE) exit('Not allowed!');

Только цифры и другие знаки все равно будут проходить...
Поэтому лучше все таки использовать регулярку.
 
 Top
movEAX
Отправлено: 06 Ноября, 2009 - 21:45:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


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




PHP:
скопировать код в буфер обмена
  1.  $str = 'Русские буквы';
  2.  echo preg_match('![^А-Яа-я\s]+!',$str);
  3.  
  4.  $str = 'English words';
  5.  echo preg_match('![^А-Яа-я\s]+!',$str);


Если смущает кодировка используйте iconv


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB