[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_match
qaz333
не сильно в етом силён


if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}/", $w))


ссылка типа http://phpforum.ru подойдёт,
а как сделать штоб он ещо проверял на http://php-forum.ru и http://phpforum.com.ru http://php-forum.com.ru



Спустя 20 минут, 35 секунд (26.02.2011 - 19:39) alex12060 написал(а):
if(!preg_match("/(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}/", $w))


http://php-forum.ru - вот это прокатит. А с поддоменами - не помню)

Спустя 5 минут, 49 секунд (26.02.2011 - 19:44) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 16:39)
if(!preg_match("/(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}/", $w))


http://php-forum.ru - вот это прокатит. А с поддоменами - не помню)

о спс,
я так сделал


if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}\.\w{1.7}|(http:\/\/)[a-zA-Z0-9-_]{1,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}\.\w{1,7}/", $w))

сойдёт? как думаеш? всё из описанного катит

Спустя 2 минуты, 50 секунд (26.02.2011 - 19:47) alex12060 написал(а):
не, грамоздко.
Ща.

Спустя 11 минут, 13 секунд (26.02.2011 - 19:58) alex12060 написал(а):
preg_match("/(http|https):\/\/[a-zA-Z0-9а-яА-Я-_]{2,16}\.(\w{1,7}|[а-я]{2,3})i/", $str)


Я тебе такую сделал валидку. Не знаю, пока сырая, но работает с русскими доменами.

Спустя 18 секунд (26.02.2011 - 19:59) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 16:47)
не, грамоздко.
Ща.

ну чё там?

Спустя 3 минуты, 45 секунд (26.02.2011 - 20:02) qaz333 написал(а):
а как сделать штоб могла ещо присудствовать точка и запятая

Спустя 2 минуты, 1 секунда (26.02.2011 - 20:04) alex12060 написал(а):
точка и запятая?
Зачем это в домене?

Спустя 49 секунд (26.02.2011 - 20:05) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 17:04)
точка и запятая?
Зачем это в домене?

не, ето уже будет не в домене

Спустя 5 минут, 49 секунд (26.02.2011 - 20:11) alex12060 написал(а):
А где?
Ну, на, я балуюсь ;D


<?php
$str = '=';

if (preg_match("/\.|,/", $str))
echo 'true';
else
echo 'false';

die();
?>


меняй на разные символы)

Спустя 5 минут, 54 секунды (26.02.2011 - 20:17) qaz333 написал(а):
ага, а вот ещо вопрос,


if(!preg_match("/[a-zA-Z0-9]{3,10}/", $e)) {

echo "Имя пользователя задано в неправильном формате";


почему пропускает больше 10 символов? што я написал нетак?

Спустя 11 минут, 24 секунды (26.02.2011 - 20:28) Dron19 написал(а):
Цитата (qaz333 @ 26.02.2011 - 16:44)
Цитата (alex12060 @ 26.02.2011 - 16:39)
<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(!</span><span class="sh_function">preg_match</span><span class="sh_symbol">(</span><span class="sh_string">"/(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}/"</span><span class="sh_symbol">,</span> <span class="sh_variable">$w</span><span class="sh_symbol">))</span></pre>

http://php-forum.ru - вот это прокатит. А с поддоменами - не помню)

о спс,
я так сделал


if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}\.\w{1.7}|(http:\/\/)[a-zA-Z0-9-_]{1,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}\.\w{1,7}/", $w))

сойдёт? как думаеш? всё из описанного катит

если все из описанного катит, то это хорошо, но такая строка не сойдет, нужно более универсальную

Спустя 50 секунд (26.02.2011 - 20:29) Dron19 написал(а):
Вот так больше десяти символов не будет
if(!preg_match("/[a-zA-Z0-9]{3,}/", $e)) 

echo "Имя пользователя задано в неправильном формате";

Спустя 2 минуты, 57 секунд (26.02.2011 - 20:32) qaz333 написал(а):
Цитата (Dron19 @ 26.02.2011 - 17:29)
Вот так больше десяти символов не будет
<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(!</span><span class="sh_function">preg_match</span><span class="sh_symbol">(</span><span class="sh_string">"/[a-zA-Z0-9]{3,}/"</span><span class="sh_symbol">,</span> <span class="sh_variable">$e</span><span class="sh_symbol">))</span>

<span class="sh_function">echo</span> <span class="sh_string">"Имя пользователя задано в неправильном формате"</span><span class="sh_symbol">;</span></pre>

так разве ето правильно?
насколько я понял
{0,10} означает минимум 0 и максимум 10 букв
а
{3,} минимум 3 а дальше сколько хочеш

или я не так понял??? :blink:

цытата из пхпклаб


Естественно подобное задание количества символов в условии поиска не является единственным. Квантификаторы бывают разные! [a-z]{1,3} означает, что подряд может идти от одного до трех букв латинского алфавита. [a-z]{2,} означает, что может идти минимум 2 буквы латинского алфавита подряд.

Спустя 8 минут (26.02.2011 - 20:40) Dron19 написал(а):
ты правильно понял.

Спустя 11 минут, 12 секунд (26.02.2011 - 20:51) alex12060 написал(а):

$str = 'awwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww';
$str2 = 'awww';

if (preg_match("/^[a-z0-9]\w{3,10}$/i", $str2))
echo 'true';
else
echo 'false';


Проверяй. Подставляй разные переменные.

Спустя 5 минут, 19 секунд (26.02.2011 - 20:57) qaz333 написал(а):
што означает ети символы ^ ............ $/i

Спустя 51 секунда (26.02.2011 - 20:58) Dron19 написал(а):
начало и конец шаблона

Спустя 49 секунд (26.02.2011 - 20:58) alex12060 написал(а):
i - нечуствительность к регистру, поэтому [A-Z] убрал)

Спустя 2 минуты, 48 секунд (26.02.2011 - 21:01) qaz333 написал(а):
ну а символы ^........$ в донном случае какую роль играют?

Спустя 24 секунды (26.02.2011 - 21:02) alex12060 написал(а):
Цитата
начало и конец шаблона


тебе же ответили.

Спустя 49 секунд (26.02.2011 - 21:02) inpost написал(а):
Dron19
Не шаблона!

qaz333
Начало и конец строки, то есть поиск будет браться от самого начала строки и до самого конца, а не в середине. То есть от начала строки случайные символы (от 3-х до 10) до конца! По поводу модификатора i уже ответили =)

Спустя 1 минута, 50 секунд (26.02.2011 - 21:04) alex12060 написал(а):
inpost

Да, строки)

Спустя 7 минут, 3 секунды (26.02.2011 - 21:11) qaz333 написал(а):
ага, понял, а в таком случае как будет правильно

так

if(!preg_match("/^[a-zA-Z0-9]{1,15}@[a-zA-Z0-9]{1,10}\.[a-zA-Z0-9]{1,3}$/", $err)) {


или так

if(!preg_match("/^[a-zA-Z0-9]{1,15}$@^[a-zA-Z0-9]{1,10}$\.^[a-zA-Z0-9]{1,3}$/", $err)) {

Спустя 16 минут, 48 секунд (26.02.2011 - 21:28) alex12060 написал(а):
if (!eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { return false; }


Моя проверка.

Кстати, надо поменять функцию)

Спустя 6 минут, 9 секунд (26.02.2011 - 21:34) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 18:28)
if (!eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { return false; }


Моя проверка.

Кстати, надо поменять функцию)

зачем менять?

цитата:,,Примечание: preg_match(), которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().,,

зачем тебе тогда A-Z если eregi игнорирует регистр?

и непойму, а зачем плюсик перед собакой? +@

Спустя 14 минут, 2 секунды (26.02.2011 - 21:48) alex12060 написал(а):
Цитата
и непойму, а зачем плюсик перед собакой? +@


Потому-что, + говорит о том, что после него должен идти только 1 символ. При этом, мы его опредилили - @
Если ввести 2 собаки, не сработает.

Почему eregi()?
хз, что первое вспомнил, то и написал)
Поэтому и сказал, что надо поменять))

Эту функцию я использую в своей разработке)

Спустя 3 минуты, 56 секунд (26.02.2011 - 21:52) qaz333 написал(а):
ясно,
у меня осталась последняя на сегодня проблема,


<?
session_start();
include("dbconnect.php");


$m=!empty($_POST['mod'])?$_POST['mod']:NULL;
$q= !empty($_POST['namme'])?$_POST['namme']:NULL;
$w=!empty($_POST['ssilka'])?$_POST['ssilka']:NULL;
$k=!empty($_POST['kat'])?$_POST['kat']:NULL;
$o=!empty($_POST['opis'])?$_POST['opis']:NULL;
$i= !empty($_POST['idd'])?$_POST['idd']:NULL;

if($k == "NULL")
{
echo 'выберите каталог';
}
else
{
if(!preg_match("/^[a-zA-Z0-9]{4,12}$/", $q))
{
echo 'название сайта введено неправильно';
}
else
{
if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}\.\w{1.7}|(http:\/\/)[a-zA-Z0-9-_]{1,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}\.\w{1,7}/", $w))
{
echo 'ссылка на сайт введена неправильно';
}
else
{

if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,30}$/", $o))
{
echo 'описание задано неправильно';
}
else
{


if($m == "create")
{
$qp = "SELECT `user_login`
FROM `topuser`
WHERE `id`= '
{$_SESSION['id']}'
LIMIT 1"
;

$sp = mysql_query($qp) or die(mysql_error());
while ($rop = mysql_fetch_array($sp) )
{
$username= $rop['user_login'];
}


$sqbl="INSERT INTO topsite(user, name, ssilka, kate, opis, zn, NUM) VALUES ('$username', '$q', '$w', '$k', '$o', 'на проверке', '1')";
$rb=mysql_query ($sqbl);
header("Location: acaunt.php");

}
elseif($m == "red")
{
$yyy = "UPDATE `topsite` SET `kate` = '$k' , `name` = '$q', `opis` = '$o', `ssilka` = '$w' WHERE `id` =' $i' ";
$r=mysql_query ($yyy) or die(mysql_error());
header("Location: acaunt.php");
}
}
}
}
}

?>



почему скрипт тупо игнорит ето условие


if($k == "NULL")
{
echo 'выберите каталог';
}

Спустя 2 минуты, 30 секунд (26.02.2011 - 21:55) Dron19 написал(а):
Цитата (inpost @ 26.02.2011 - 18:02)
Dron19
Не шаблона!

qaz333
Начало и конец строки, то есть поиск будет браться от самого начала строки и до самого конца, а не в середине. То есть от начала строки случайные символы (от 3-х до 10) до конца! По поводу модификатора i уже ответили =)

это одно и тоже, потому что регулярки рассматривают всю строку посимвольно, так что это синоним в данном случае

Спустя 54 секунды (26.02.2011 - 21:56) alex12060 написал(а):

if($k == "NULL")
{
echo 'выберите каталог';
}


NULL - эо тип данных, не строка, а ТИП ДАННЫХ.

Если хочешь проверять так, с "", то ставь 3 равно. Они проверяют само слово.
А == проверют и тип, и все подобное.
Поэтому, убирай "", либо, ставь 3 равно.

Спустя 13 секунд (26.02.2011 - 21:56) Dron19 написал(а):
потому что надо так

if($k == NULL)
{
echo 'выберите каталог';
}

Спустя 30 секунд (26.02.2011 - 21:56) Dron19 написал(а):
ой, не успел

Спустя 8 минут, 4 секунды (26.02.2011 - 22:04) qaz333 написал(а):
а.., понял, всем на сегодня спасибо

Спустя 2 дня, 19 часов, 47 минут, 20 секунд (1.03.2011 - 17:52) qaz333 написал(а):
всем привет, хотел поинтерисоватся, почему етот скрипт не пропускает русские и украинские буквы

if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,40}$/", $o))
{
echo 'описание задано неправильно';
}
else
{

Спустя 47 минут, 57 секунд (1.03.2011 - 18:40) qaz333 написал(а):
хелп

Спустя 9 минут, 11 секунд (1.03.2011 - 18:49) inpost написал(а):
qaz333
модификаторы: u - для ЮТФ. и можно добавить is, по желанию.

Спустя 2 часа, 5 минут, 48 секунд (1.03.2011 - 20:55) qaz333 написал(а):
Цитата (inpost @ 1.03.2011 - 15:49)
qaz333
модификаторы: u - для ЮТФ. и можно добавить is, по желанию.

не помогло, или я не так сделал

if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,40}$/u", $o))
{
echo 'описание задано неправильно';
}
else
{

Спустя 10 минут, 59 секунд (1.03.2011 - 21:06) inpost написал(а):
на первый взгляд всё верно, покажи текст, который ты вставляешь туда. (Как совет, отдельно ещё букву ёЁ добавить надо.
У тебя от 10 до 40 букв проходить должны.

Спустя 38 минут, 44 секунды (1.03.2011 - 21:44) qaz333 написал(а):
любой текст где есть русские или украинские буквы не проходит

Спустя 1 час, 34 минуты, 26 секунд (1.03.2011 - 23:19) qaz333 написал(а):
хелп
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.