2014-01-09 4 views
0

У меня есть следующий код, который проверяет, содержит ли мой $ _REQUEST ['комментарий'] буквенно-цифровые символы плюс несколько дополнительных функций, таких как -,;PHP preg_match подтверждает символы

Кроме буквенно-цифровой, я хотел бы, чтобы убедиться, что следующие символы справедливы (включая пробел): ! " £ $ % & () - _ + = [ ] : ; ' @ # ? . ,

if (!preg_match('/[^a-zA-Z0-9_\-,;]/', $_REQUEST['comment'])) { 
    echo "valid characters"; 
} 

Может кто-нибудь помочь?

+0

Вы уверены, что будут только комментарии с латинским charset? Могут ли люди писать комментарии, например. Русский или китайский? Если это так, ваше регулярное выражение не будет работать для этих языков. –

ответ

0

Просто поместите их в классе символов:

[^a-zA-Z0-9_\-,;!"£$%&()+=\[\]:\'@#?.] 

Это может быть сокращено:

[^\w\-,;!"£$%&()+=\[\]:\'@#?.] 

Кроме того, можно добавить пробелы как действительный символ:

[^\w\s\-,;!"£$%&()+=\[\]:\'@#?.] 
Смежные вопросы