2009-06-22 7 views
2

Пожалуйста, расскажите, как использовать различные символы, используемые для соответствия выражений в функции preg_match PHP.Как использовать PHP preg_match для проверки строк?

Помимо основной информации, пожалуйста, дайте пример для проверки действительного адреса электронной почты и строки, которая не должна содержать /:; {} * &

ответ

0

Чтобы проверить действительную почту, вы можете использовать встроенную функциональность (filter_var()/FILTER_VALIDATE_EMAIL) или использовать славные готовые к использованию библиотеки, которые соответствуют текущему RFC. PHP : Parsing Email Adresses in PHP. В примерах на preg_match() вы можете перейти на сайт php, а параметры регулярного выражения полного списка доступны на Wikipedia. Чтобы узнать о Regex, я рекомендую «The Regex Coach».

2

Простой пример .. Проверка $ var, которая является строкой, проверяющей и проверяющей символы (от a до z AND от A до Z).

<?php 
$var = 'hello'; 
if (ereg("[a-zA-Z]", $var)) { 
    echo 'it was typed correctly'; 
} else { 
    echo 'it was not typed correctly'; 
} 
?> 
более

регулярные выражения синтаксических exemples: http://www.regexlib.com/

EDIT:

if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) { 

    echo 'email ok'; 

} else { 

    echo 'email not ok'; 

} 

С уважением.

+0

спасибо за ссылку! – OrangeRind

+0

Я рекомендую использовать регулярные выражения (regex) для проверки правильности строки/электронной почты. (ereg in Php) Пример просто я использую его в течение 2 лет .. Никогда не подводил меня. Уверенный там да меньшее выражение регулярного выражения .. Но мне нравится держать те, которые я знаю, что он работает хорошо. –

+3

Любой, начинающий с регулярных выражений в PHP, должен использовать набор preg, а не ereg. preg основан на библиотеке PCRE, и это один из самых мощных, многофункциональных ароматов. ereg, основанный на стандарте POSIX, использует другой синтаксис и намного менее эффективен; это действительно поддерживается только по историческим причинам. –

0

Я знаю, что речь идет о PHP, но моя цель - проиллюстрировать тонкости проверки адреса электронной почты. Чтобы проверить, соответствует ли адрес электронной почты RFC 2822, вы можете использовать модуль Perl Email::Address. Посмотрите на источник этого модуля, а также на RFC.

0

Если я даю $ var = 'hello87%^$', также возвращается «оно было напечатано правильно»;

Смежные вопросы