Помогите с регулярным выражением

booch
На сайте с 06.03.2007
Offline
125
502

Добрый вечер всем.

Подскажите, как забраковать строку, которая содержит такие символы, как " ' `

Делаю так:

if(!preg_match("/[^'`\"]+/",$password)) echo "забраковано";

Срабатывает только в том случае, когда вся строка из этих символов.

Идея года! Такого в онлайн играх ещё не было. (http://ams-ter.mybrute.com) Перспективный блог (http://seoamster.ru)
D
На сайте с 04.03.2009
Offline
32
#1

if( preg_match("/(`|'|\")/",$password)) echo "забраковано";

booch
На сайте с 06.03.2007
Offline
125
#2

Спасибо, работает.

J
На сайте с 02.02.2009
Offline
53
#3

Логически неправильно

if(preg_match("/['`\"]+/",$password)) echo "забраковано";

так правильно будет

а в вашем случае -

"если нет других символов, кроме '"` - то..."

chemax
На сайте с 07.01.2009
Offline
206
#4

а если строка содержит символ \ ????

Качественный хостинг, VPS и сервера. (http://ihc.ru/?ref=569)
J
На сайте с 02.02.2009
Offline
53
#5
chemax:
а если строка содержит символ \ ????

if(preg_match("/['`\"\\]+/",$password)) echo "забраковано";

Linkpusher
На сайте с 28.12.2007
Offline
176
#6

а вопросительные знаки и звёздочки? двоеточия всякие?

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

Точу ножи. Буквально. Есть отзывы. Заказать заточку в МСК и Подольске можно через Телеграмм.
[Удален]
#7

люди совсем забыли про функции работы со строками. if(strpos("'",$str)!==false) die("забраковано");

J
На сайте с 02.02.2009
Offline
53
#8
bearman:
люди совсем забыли про функции работы со строками. if(strpos("'",$str)!==false) die("забраковано");

ага

if(strpos("'",$str)!==false && strpos('"',$str)!==false && strpos("`",$str)!==false && strpos("\\",$str)!==false) die("забраковано");

иногда регуляркой быстрее - учитывая что память тут некритична - при не такой уж частой отработке

[Удален]
#9



if (strcspn($str,"`'\"\\")!=strlen($str))
die("забраковано");

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий