Если объединить два приведенных регулярных выражения как альтернативы (ветви), получим следующее регулярное выражение, которое соответствует нулю или любому числу, начинающемуся не с нуля:
"~{0|[1-9][0-9]*)$"
Добавим поддержку необязательного знака - (минус) перед числами. Поместив за символом зададим его вхождение ноль или один раз. Теперь регулярное выражение примет вид:
"~(0|-?[1-9Л0-9]»)$"
Но это выражение пока не учитывает десятичные знаки, которые могут быть необязательны:
"(\.[0-9]{1,2})?"
Это означает . (точку) и последующие 1 или 2 цифры. Обратный слэш позволяет литерально задать специальный символ точки. Вся эта часть необязательна, поскольку за ней следует ? (вопросительный знак). Объединив последние два шага, получим:
"<ОИ[1-9][0-9И\.[0-8]{1.2»?)Г
Приведенное регулярное выражение удовлетворяет всем установленным нами критериям, за исключением запятых. Обычно запятые лучше удалить перед проверкой допустимости строки:
str_replace(",", "", "$currency_value") Вот регулярное выражение, учитывающее запятые, разделяющие тысячи: "*(0|-?[1-9]+|[0-9]{1,3}(,[0-9](3))*)(\.[0-9]{1,2})?$"
Проверка адресов электронной почты
Рассмотрим адрес электронной почты user_name@my. domain-name, com. В нем две составляющие - имя пользователя и имя домена, разделенные знаком В имени пользователя могут присутствовать буквы верхнего и нижнего регистра, цифры, точки, знаки минуса и подчеркивания (то же относится к имени сервера, исключая знаки подчеркивания):
"[-a-zA-ZO-9, J"
Этого выражения достаточно для проверки имени пользователя. Для проверки разделителя между именем пользователя и именем домена требуется добавить
"+@[-a-zA-Z0-9. ]"
Для проверки домена верхнего уровня добавим такое выражение:
"(\.[-a-zA-Z0-9]+)" Объединяя все перечисленные шаги, получим:
"-([-a-zA-Z0-9. J+©[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)*$"
Есть несколько вариантов регулярных выражений для проверки синтаксиса адресов электронной почты. Дополнительные сведения можно найти в книге издательства Wrox «Beginning РНР4» (ISBN 1-861003-73-0).
Регулярные выражения в РНР
Регулярные выражения, с которыми мы здесь называются регу
лярными выражениями в стандарте PO8IX. POSIX - аббревиатура для Portable Operating System Interface (интерфейс переносимой операционной системы). Это стандарт, определенный для интерфейсов сервисов приложений комиссией по стандартам переносимых приложений Portable Application Standards Committee. Дополнительную информацию можно найти на сайте http: //http://www.pasc.org/"> www.pasc.org/.