Регулярка (проверка на наличие двух чисел)

Peroon

Новичок
Регулярка (проверка на наличие двух чисел)

Нужно сделать простейшую вещь. Проверить строку равна-ли она чему-нибудь кроме 1 или 0.

Я пишу так

if ( preg_match ( "/[^01]/", $str ) ) $error = "Неверно!";

Не работает... что не так?
 

Лисю

Guest
PHP:
$str = '1';
if($str!='0' && $str!='1') echo "Неверно";
else echo "Верно";
[Posted by 213.171.59.204. This is added while posting a message via http://webwarper.net to avoid misuse of WebWarper. Example of using WebWarper: http://webwarper.net/ww/~av/phpclub.ru/talk/forumdisplay.php?s=&forumid=12 ]
 

md5hash

Новичок
Peroon
Нужно сделать простейшую вещь. Проверить строку равна-ли она чему-нибудь кроме 1 или 0.

Я пишу так

if ( preg_match ( "/[^01]/", $str ) ) $error = "Неверно!";

Не работает... что не так?
Ты все правильно сделал, и это работает. Посмотри просто откуда $str берется, я для опыта ее из $_GET['str'] беру, то есть

if ( preg_match ( "/[^01]/", $_GET['str'] ) ) echo "Неверно!";

сорри запарки, действительно не работает, всчески извеняюсь (((
 

Лисю

Guest
Регулярные выражения тут юзать ненадо. Особенно preg.
if проверки хватит вполне.


sage
твой код даст true при str = '1', а по правилам или (||) проверяет до первого true.
В результате выражение даст $error = "Неверно!";

[Posted by 213.171.59.204. This is added while posting a message via http://webwarper.net to avoid misuse of WebWarper. Example of using WebWarper: http://webwarper.net/ww/~av/lycos.com ]
 

Peroon

Новичок
Я понимаю, что сделать простым ИФОМ просто. Мне просто стало интересно, почему не получается сделать такую ерунду через регулярное выражение.

Ну что есть идеи? Как через регулярное сделать?
 

SiMM

Новичок
> Мне просто стало интересно, почему не получается сделать такую ерунду через регулярное выражение.
Потому что читать надо.
PHP FAQ: Регулярные выражения.

> Ну что есть идеи? Как через регулярное сделать?
Здесь не ресторан.
 

Peroon

Новичок
Ладно, а почему когда $str = "111" или $str = "01" выражение срабатывает?

Объясните, пожалуйста.
 

md5hash

Новичок
PHP:
if ( preg_match ( "/^[01]{1}$/", $_GET['str'] ) ) echo "Correct"; else echo "Incorrect";
И все, но Лисю верно сказал, что такое через регулярки не делается.
 

Лисю

Guest
Peroon
см. выше, там написано + http://www.php.net/manual/ru/language.operators.logical.php


[Posted by 213.171.59.204. This is added while posting a message via http://webwarper.net to avoid misuse of WebWarper. Example of using WebWarper: http://webwarper.net/ww/~av/phpclub.ru/talk/forumdisplay.php?forumid=12 ]
 

Лисю

Guest
itprog
ничего не имею. просто каждой части программы - свой "инструмент". И не нужно использовать регулярные выражения, если можно использовать тривиальные конструкции if else. Нужно правильно изначально подбирать тот или иной инструмент и подход.


[Posted by 213.171.59.204. This is added while posting a message via http://webwarper.net to avoid misuse of WebWarper. Example of using WebWarper: http://webwarper.net/ww/~av/phpclub.ru/talk/forumdisplay.php?forumid=12 ]
 
Сверху