Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> !preg_match разрешить пробел, в русский буквах 
:(
    Опции темы
fleetboss
Дата 25.9.2009, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2009

Репутация: нет
Всего: нет



Как изменить код, чтобы скрипт разрешал русским буквам пробел? Для англ я тупо поставил в конце пробел или \s, но на русские буквы это не работает

Код
(!preg_match("/^[А-Яа-яЁёa-zA-Z ]+$/",$_POST['u_name']))

Код
(!preg_match("/^[А-Яа-яЁёa-zA-Z\s]+$/",$_POST['u_name']))


И можно как-то еще добавить сюда чтобы разрешал латышские буквы? šādī

Это сообщение отредактировал(а) fleetboss - 25.9.2009, 04:12
PM MAIL   Вверх
NewDima
Дата 25.9.2009, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Цитата(fleetboss @ 25.9.2009,  11:07)
чтобы скрипт разрешал русским буквам пробел

Это что значит?


1. Используй ключи i (для разных регистров)
2. Ключ u для символов, относящихся к юникоду
PM ICQ   Вверх
fleetboss
Дата 25.9.2009, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2009

Репутация: нет
Всего: нет



Например:

Andrej Fedorovich - разрешает
Андрей Федорович - пишет что ошибка (пробел)
PM MAIL   Вверх
NewDima
Дата 25.9.2009, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Код

  var_dump(preg_match('#[a-zа-я\s]+#iu', 'Andrej Fedorovich'));
  var_dump(preg_match('#[a-zа-я\s]+#iu', 'Андрей Федорович'));

вывод?
Цитата

int(1)
int(1)

PM ICQ   Вверх
Strilo4ka
Дата 25.9.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.2.2009

Репутация: нет
Всего: нет



можно просто в регулярном выражении поставить пробел надатием елавишы пробел вот так напримео #^[a-z0-9 ]$# если включить какой то модификатор в конце не помню то пробел обычным нажатием клавишы игнорироваться(это в режыме коментариев )

Добавлено через 1 минуту и 38 секунд
\s - если вы в условии поиска поставите друг за другом символ обратного слеша, а после него сразу букву s, то таким образом вы опишите либо пробел, либо символ табуляции. Конечно в условии поиска можно поставить пробел так, как вы его обычно ставите на письме, но запись [a-z\s] будет намного понятнее и читабельней чем [a-z ], с первого взгляда видно, что в первый символьный класс входит пробел, а вот со вторым символьным классом надо присмотреться, а так как регулярные выражения итак представляют для многих набор значков, то пропустить пробел, поставленный таким образом будет очень просто. Внимательно используйте этот спецсимвол, так в дополнении к тому, что он совпадает с пробелом и табулятором, он совпадет также с символом новой строки.
PM ICQ   Вверх
fleetboss
Дата 25.9.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2009

Репутация: нет
Всего: нет



Цитата(NewDima @ 25.9.2009,  06:24)
Код

  var_dump(preg_match('#[a-zа-я\s]+#iu', 'Andrej Fedorovich'));
  var_dump(preg_match('#[a-zа-я\s]+#iu', 'Андрей Федорович'));

Этот код вообще не катит, так как он разрешает любые символы и цифры, если не заметили у меня стоит !preg_match

Пробывал намудрить.... написал такое, но тоже выдает ошибку... 

Код

elseif ((!preg_match("#^[A-Za-z\s]$#",$_POST['u_name'])) || (!preg_match("#^[А-Яа-яЁё\s]$#",$_POST['u_name']))){ $error_line = "Разрешены только русские и английские буквы!\n"; }


может кто написать как правельно будет выгледить код, который будет разрешать пробелы и в русских и латинских буквах?

Код
(!preg_match("/^[А-Яа-яЁёa-zA-Z\s]+$/",$_POST['u_name']))

Выше написаный код разрешает пробел в форме, НО только для английских букв...

Это сообщение отредактировал(а) fleetboss - 25.9.2009, 18:21
PM MAIL   Вверх
Strilo4ka
Дата 25.9.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.2.2009

Репутация: нет
Всего: нет



Код

<?php

$name='абцд а';
if (preg_match("/^[А-Яа-яЁёa-zA-Z\s]+$/",$name))
{
echo "русские символы + пробел<br>";
}

$name2='abcc d';
if (preg_match("/^[А-Яа-яЁёa-zA-Z\s]+$/",$name2))
{
echo "латинские символы + пробел<br>";
}

?>


Рузультат в браузере:
Код

русские символы + пробел
латинские символы + пробел



Это сообщение отредактировал(а) Strilo4ka - 25.9.2009, 22:27
PM ICQ   Вверх
fleetboss
Дата 26.9.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2009

Репутация: нет
Всего: нет



Ваш скрипт показывает что прошел только второй код, для русских букв не прошел (ничего не выдал). Может проблема в настройках сервера?

Еще раз пишу у меня стоит проверка на разрешение только русский, латинских букв и пробела ) Надо добавить пробел для русской клавиатуры, для латинской работает.
Если ввести любой другой символ - сработает скрипт. Он должен разрешать только рус/лат буквы и пробел для обоих клавиатур :(

Код
if (!preg_match("/^[А-Яа-яЁёa-zA-Z\s]+$/",$_POST['u_name'])){ $error_line = "Разрешены только русские и английские буквы!\n"; }



Это сообщение отредактировал(а) fleetboss - 26.9.2009, 00:59
PM MAIL   Вверх
Strilo4ka
Дата 26.9.2009, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.2.2009

Репутация: нет
Всего: нет



где то в книге встречал короче можно устанавливать локаль (типа язык)... ну не помню поищи серйозно, а то влом лезть !!!

Добавлено через 1 минуту и 54 секунды
у меня работает установленый денвер... 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.