1

Topic: Регулярные выражения: числа

Проверка HTML-формы для ввода числового значения является часто необходимой задачей. При разработки приложений разработчик может подразумевать, что в HTML-форму должно вводится какое то числовое значение, хотя не факт, что пользователь в место номера телефона не введёт в поле какое нибудь слово, т.е. строку или того хуже программу на исполнение, которая может как минимум нарушить правильную работу скрипта, а как максимум удалить важные данные.

Тут всё зависит от подготовленности злоумышленника и его намерений. О защите приложений нужно говорить отдельно, но непременный минимум нужно соблюдать всегда в целях избежать последствий такого "подарка".

Для проверки ввода числа в PHP введён специальный класс \d. Так же следует указать явно начало (^) и конец ($) строки (это символы регулярных выражений), иначе после того как будет введена одна цифра можно будет писать что угодно.

Шаблон проверки целого числа

|^[\d]*$|

Шаблон проверки числа. В качестве разделителя - точка или запятая

|^[\d]*[\.,]?[\d]*$|

Проверка HTML-формы предназначенной для ввода числа

2

Re: Регулярные выражения: числа

Вот еще готовые шаблоны для проверки чисел с помощью регулярных выражений.

\d [0-9]    Одна цифра от 0 до 9.
\D [^0-9]    Любой символ кроме цифры.
\s    Пробел.
[A-Z]    Только заглавная латинская буква.
[A-Za-z]    Только латинская буква в любом регистре.
[А-Яа-яЁё]    Только русская буква в любом регистре.
[A-Za-zА-Яа-яЁё]    Любая буква русского и латинского алфавита.
[0-9]{3}    Три цифры.
[A-Za-z]{6,}    Не менее шести латинских букв.
[0-9]{,3}    Не более трёх цифр.
[0-9]{5,10}    От пяти до десяти цифр.
^[a-zA-Z]+$    Любое слово на латинице.
^[А-Яа-яЁё\s]+$    Любое слово на русском включая пробелы.
^[ 0-9]+$    Любое число.
[0-9]{6}    Почтовый индекс.
\d+(,\d{2})?    Число в формате 1,34 (разделитель запятая).
\d+(\.\d{2})?    Число в формате 2.10 (разделитель точка).
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}    IP-адрес