и снова regexp

123

Guest
И снова regexp

Задача такая:

если строка содержит помимо допустимых символов еще какие-то, сделать то-то то-то

я сделал сначала так:
PHP:
// строка содержащая различную чушь, помимо допустимой
$str = "wi$nd#(ows=";

if (!preg_match('/^[a-zа-я0-9]/i', $str))
{
       // делаем то-то то-то =)
       echo 'строка содержит недопустимые символы';
}
Но данное условие ищет нехорошие символы только в начале строки и в данном примере не выведет ошибки.
Вот и вопрос, как сделать проверку для всего $str.

Я пробовал использовать preg_match_all, но он так же не помогает - потому как находит наоборот только допустимые символы и игнорирует запрещенные.
 

123

Guest
Сделал: preg_match('/[^a-zа-я0-9]/i', $str)
все то же самое, не помогает =(
 

morti

Новичок
<?php
$str = "wi%nd#(ows=";

if (preg_match("/\W/i", $str))
{
echo "Работает";
}
?>

Подробнее читай мануалы. Там все расписано.
А вообще в нормальном варианте твой текст выдаст ошибку. Ибо ты используешь $nd, это как переменная ;-)))

-~{}~ 02.05.05 17:38:

preg_match('/[^a-zа-я0-9]/i', $str)

пофиг поиск все равно будет в начале строки

\W - это не алфавитно цифровые символы
 

itprog

Cruftsman
$ в конец + "+" добавить лучше:

if (!preg_match('/^[a-zа-я0-9]+$/i', $str))
 
Сверху