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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> preg_match(), Строка с определенным набором символов 
:(
    Опции темы
Максим
Дата 16.3.2005, 13:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Казалось бы элементарная задача, оставить в переменной только символы из определенного набора (А-Я, а-я, A-Z, a-z, и несколько других). Но как лучше, правильней и удобней это сделать?

Код

if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
}

if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$name))
{
}

Это похоже на то что я искал, но тут http://myphp.net.ru/functions/index.php?preg-match не очень понятно написано.
Помогите разобраться в этих двух строчках
  Вверх
Mal Hack
Дата 16.3.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
}

Проверка мыла:
Код
<?php

$email = "[email protected]";

$name    = "(\w|\d){1}(\w|\d|\-|_|\.|\+)+?(\w|\d){1}";
$domain1 = "((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?" ;
$domain2 = "\.(\w){2,4}";

if( preg_match( "#^" . $name . "@" . $domain1 . "" . $domain2 . "$#i" , $email ) )
  {  print "Valid e-mail.";  }
else
  {  print "Incorrect e-mail.";  }

?>


Цитата
if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$name))
{
}

По точнее задачу поясни smile
PM ICQ   Вверх
Максим
Дата 16.3.2005, 14:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Mal Hack
Не совсем понятен синтексис этой команды.
Какие значения (для чего служат) квадратные скобки
| - похоже на разделитель, но что он разделяет
какие значение имеют ключи \w \s \x и другие (какие вообще есть)
И уж совсем не понятно что означает и для чего нужен знак ^
  Вверх
Mal Hack
Дата 16.3.2005, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



PM ICQ   Вверх
Irokez
Дата 16.3.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



сорри за оффтоп, но чем отличаются границы шаблона: "/.../", "#...#", "!...!"
нигде не могу найти инфу насчет этого, мне говорили что они как то влияют на возвращаемое значение переменых ($1, $2 ...)
PM   Вверх
Mal Hack
Дата 16.3.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Вроде никак.

Цитата(Irokez @ 16.3.2005, 19:59)
$1, $2 ...

Лично мне интересно больше чем отличаются \\1 и $1. Различия между № ! / по логике никакой.
PM ICQ   Вверх
Irokez
Дата 16.3.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



да вроде тоже никак, я обычно использую с долларом, так приятнее =)
т.е. границами шаблонов могут быть любые символы? (@ # $ % ^ & *)
PM   Вверх
Mal Hack
Дата 16.3.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Irokez @ 16.3.2005, 20:57)
да вроде тоже никак, я обычно использую с долларом, так приятнее =)

А тогда смысл делать эти две возможности?

Цитата(Irokez @ 16.3.2005, 20:57)
т.е. границами шаблонов могут быть любые символы? (@ # $ % ^ & *)

Я знаю только про / # !. Все. Про другие символы не знаю.
PM ICQ   Вверх
Irokez
Дата 16.3.2005, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(Mal @ 16.3.2005, 21:04)
А тогда смысл делать эти две возможности?

по моему $1 - это перловская версия, \\1 - пхпшная ... хотя могу ошибаться
PM   Вверх
IZ@TOP
Дата 17.3.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Цитата(Mal @ 16.3.2005, 22:04)
знаю только про / # !. Все. Про другие символы не знаю.

По моему при использовании знака процента, отпадает надобность в можификаторе s - т.е. например шаблон /([a-z]{1,5}/s равносилен %([a-z]{1,5})%.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 17.3.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Вряд ли... Блин, и как назло ничего в доке PHPшной нет.. smile
PM ICQ   Вверх
Irokez
Дата 17.3.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(IZ @ 17.3.2005, 14:22)
По моему при использовании знака процента, отпадает надобность в можификаторе s - т.е. например шаблон /([a-z]{1,5}/s равносилен %([a-z]{1,5})%.

угумс, мне примерно в таком же роде что то подобное объясняли, граничные символы кажется могут играть роль отдельных модификаторов ...
может на форум по перлу запостить?
PM   Вверх
Максим
Дата 21.3.2005, 20:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну мне то теперь понятно гораздо больше об этой функции чем было совсем недавно.
Если же у кого то возникнет такая же проблема (все-таки команда preg_match не такая уж и простая), смело идите сюда:
http://eyewink.fatal.ru/wcoding/php.php?page=4
Все описано очень понятным и доступным языком.
Что касается некоторых других (на вполне хороших и даже замечательных сайтах) страниц и объяснений по этой функции - сколько не кувыркался, ничерта не понятно.
  Вверх
Ринат
Дата 31.3.2005, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот хорошее регулярное выражение для проверки мыла, притом проходят мыла типа [email protected] , POSIX правда

Код

function checkmail($mail)
    {
if (strlen($mail)==0) return false;
        if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $mail))
return true;
    }


PM MAIL   Вверх
Irokez
Дата 31.3.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



зато не пройдет что-нибудь вроде [email protected] smile надо лимит на количество символов в домене первого уровня увеличить до 6ти
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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