Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужно проверить наличие в строке только русских букв и ничего больше
 
 автор: FoReAcH   (11.09.2007 в 17:04)   письмо автору
 
 

1.Нужно проверить наличие в строке только русских букв и ничего больше
Пробую так: if(!ereg("^[А-Яа-я]+$", $name)){echo"Ошибка!";exit;} не выходит
2.Нужно проверить наличие в строке русских букв английских знаков -_ и пробельных сиволов
if (!ereg("^[А-Яа-яA-Za-z0-9\ -_]", $info)){ echo"Ошибка!";exit;} тоже не выходит.Помогите плиз

   
 
 автор: Faraon   (11.09.2007 в 17:20)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 17:04)
 

>1.Нужно проверить наличие в строке только русских букв и ничего больше
Проверить есть ли они вообще или что в строке должны быть только русские буквы?
если второе то ваше выражение подходит
если первое то
if(!ereg("[а-яА-Я]+", $name)){echo"Ошибка!";exit;}   


Насчет второго
if (!ereg("^[а-яА-Яa-zA-Z0-9\-_\s]+$", $info)){ echo"Ошибка!";exit;}   

   
 
 автор: FoReAcH   (11.09.2007 в 18:18)   письмо автору
 
   для: Faraon   (11.09.2007 в 17:20)
 

Для первого случая нужно что бы в строке были только русские буквы
Выражение if(!ereg("^[а-яА-Я]+$", $name)){echo"Ошибка!";exit;} не работает.Выражение if (!ereg("^[а-яА-Яa-zA-Z0-9\-_\s]+$", $info)){ echo"Ошибка!";exit;} тоже не работает (

   
 
 автор: kasmanaft   (11.09.2007 в 18:25)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 18:18)
 

Это мы уже поняли из первого поста. Дайте пример того, чего вы помещаете в $name (и $info, соответственно)

   
 
 автор: FoReAcH   (11.09.2007 в 18:32)   письмо автору
 
   для: kasmanaft   (11.09.2007 в 18:25)
 

Переменная $info содержит описание из нескольких слов т.е несколько предложений.Переменная $name имя состоящее только из русских слов.Далее переменные обрабатываются
$name=trim(strip_tags($_POST['name']));
$info=strip_tags($_POST['info']);
Ну и вот.Ни одна из выше привиденных регулярок не работает(

   
 
 автор: kasmanaft   (11.09.2007 в 19:09)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 18:32)
 

Вы покажите наконец пример?

> т.е несколько предложений
Точки, запятые может быть мешают?

   
 
 автор: FoReAcH   (11.09.2007 в 19:47)   письмо автору
 
   для: kasmanaft   (11.09.2007 в 19:09)
 

Нет там точек с запятыми пример:"Тест тест".Да это ладно,вот почему интересно имя не пропускает?

   
 
 автор: kasmanaft   (11.09.2007 в 20:05)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 19:47)
 

> вот почему интересно имя не пропускает?
Даже не знаю... Я пока не придумал ни одного имени, которое не пропустят

<?php
if (!ereg("^[а-яёЁА-Я]+$""ИмяСостоящееТолькоИзРусскихБукаф")) {
  echo
"Ошибка!";
  exit;
} else {
  echo 
"Не было ошибки!";
}
?>

   
 
 автор: Trianon   (12.09.2007 в 09:59)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 19:47)
 

тут есть пробел. Он явно не учитывается шаблоном.

   
 
 автор: Саня   (11.09.2007 в 23:08)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 18:32)
 

Попробуйте настроить локаль.

   
 
 автор: kasmanaft   (11.09.2007 в 17:34)   письмо автору
 
   для: FoReAcH   (11.09.2007 в 17:04)
 

В А-Яа-я не входят ёЁ.. может быть дело в этом.
Второе может быть так надо исправить: ^[А-Яа-яЁёA-Za-z0-9\ -_\s]+$

Если не поможет, приведите примеры, где ошибка выходит.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования