Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Проверка символов (PHP)

Ответить
Настройки темы
Проверка символов (PHP)

Аватара для aggressor_

Пользователь


Сообщения: 101
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте,
использую следующий код для фильтрации вводимого
PHP код: Выделить весь код

$a $_POST['a'];

$a str_replace(",",".",$a);
if(!
preg_match("/^[\d.]+$/",$a))
    { 
    echo 
"Введите число"
    exit;
    } 

Как можно ограничить ввод таких вариаций?
Код: Выделить весь код
,,
...
3.
7...,,3
и т.д.
т.е. должны проходить только натуральные числа или же десятичные дроби (с одной запятой или точкой).

Отправлено: 04:26, 15-06-2012

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Подойдёт ?

Код: Выделить весь код
^[+]?\d*\.?\d*[1-9]+\d*$)|(^[+]?[1-9]+\d*\.\d*$

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:19, 15-06-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


после str_replace делайте приведение к типу float и проверяйте на 0.
Цитата Tonny_Bennet:
Подойдёт ? »
неа, там ошибка на ошибке.
так правильнее пм
Код: Выделить весь код
^[\+\-]?\d+(?:[\.\,]\d+)?$
ps по знаку разделения см. setlocale LC_NUMERIC
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:14, 15-06-2012 | #3


Аватара для aggressor_

Пользователь


Сообщения: 101
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Sham:
после str_replace делайте приведение к типу float и проверяйте на 0. »
мало знаком с php... не могли бы вы подсказать, как это сделать?

Отправлено: 15:14, 15-06-2012 | #4


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Sham, сразу не присмотрелся. Действительно ошибки.

Вот здесь предложено сделать так:

PHP код: Выделить весь код

<?php echo "\$foo==$foo; тип: " gettype ($foo) . "<br />\n"?>


http://www.php.su/functions/?gettype

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:36, 15-06-2012 | #5


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


http://www.php.net/manual/ru/languag...es.typecasting
PHP код: Выделить весь код

$a = isset($_POST['a']) ? (float) $_POST['a'] : 0

Цитата Tonny_Bennet:
php.su »
официальный ресурс php.net, откуда все копипастят
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:43, 15-06-2012 | #6


Аватара для aggressor_

Пользователь


Сообщения: 101
Благодарности: 3

Профиль | Отправить PM | Цитировать


Tonny_Bennet,
да, я это читал.
Не совсем понимаю зачем делать float, формула и сейчас просчитывается отлично.

Отправлено: 15:50, 15-06-2012 | #7


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


Цитата aggressor_:
зачем делать float »
чтобы не делать preg_match
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 15-06-2012 | #8


Аватара для aggressor_

Пользователь


Сообщения: 101
Благодарности: 3

Профиль | Отправить PM | Цитировать


Sham, окончательно запутался. Как тогда будет выглядеть конечный вариант всего этого?

Отправлено: 16:00, 15-06-2012 | #9


Deadooshka


Сообщения: 2566
Благодарности: 698

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

$a = isset($_POST['a']) ? (float) str_replace(',''.'$_POST['a']) : null;

if (!
$a) exit ('Введите число'); 


Отправлено: 17:08, 15-06-2012 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Проверка символов (PHP)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование с удалением символов AlexVong Скриптовые языки администрирования Windows 0 20-12-2011 14:19
Ошибка - Обращение к таблице символов Irvinqw Microsoft Windows 2000/XP 6 26-06-2008 17:49
Не более 8 символов? 007G Вебмастеру 4 09-08-2004 23:45
Замена символов при вводе Giorgievich Вебмастеру 5 06-02-2004 11:31
Замена символов Guest Программирование и базы данных 13 20-03-2003 17:55




 
Переход