3 / 3 / 5
Регистрация: 09.02.2014
Сообщений: 169
1

Проверка строки что в ней были только цифры, запятая или точка

20.03.2015, 13:44. Показов 4106. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть строки

PHP
1
2
3
$s_1 = 11; //1 стр
$s_2 = 11.22; //2 стр
$s_3 = '11,12'; //3 стр
не могу разобраться как работает 'preg_match' нужна такая проверка что бы только три таких варианта записей чисел к ней подходили.. Т.е число может быть введено в форму по разному: 11 или 11.01 или 11,20 как осуществить такую проверку? Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2015, 13:44
Ответы с готовыми решениями:

Только цифры точка и запятая в TextBlock
Здравствуйте. Собственно проблема, нужно для TextBlock - ограничить ввод, только цифры, точка,...

Превратить строку так, чтобы сначала в ней были напечатаны только буквы, а потом только цифры
Превратить строку так, чтобы сначала в ней были напечатаны только буквы, а потом только цифры, не...

Преобразовать строку таким образом, чтобы сначала в ней были напечатаны только буквы, а потом только цифры
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются...

Что является десятичным разделителем - точка или запятая?
#include "stdafx.h" #include <stdio.h> #include <math.h> int main() { double eps, s; double...

4
Эксперт PHP
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.03.2015, 15:04 2
Цитата Сообщение от SkyNet123 Посмотреть сообщение
Т.е число может быть введено в форму по разному
запрети ввод на фронте с помощью js повесив функцию на события oninput,onchange, onkeyup ...
Пример функции js
Javascript
1
2
3
4
5
6
7
8
9
/**
 * Функция фильтрации ввода float чисел
 */
function inputFloat() {
    this.value = this.value.replace(',', '.');
    if (!/^\d+\.0*$|^0$/.test(this.value)) {
        this.value = parseFloat(this.value) || '';
    }
}
в php приведение и фильтрация пример для размышления
PHP
1
2
3
4
5
6
7
8
9
10
11
$s_1 = 11; 
$s_2 = 11.22; 
$s_3 = '11,12';
function strToFloat($str =''){
    return(floatval(str_replace(',', '.', $str)));
}
echo strToFloat($s_1). PHP_EOL;
echo strToFloat($s_2). PHP_EOL;
echo strToFloat($s_3). PHP_EOL;
echo filter_var($s_2,FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); 11,12
echo filter_var($s_3,FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); 1112
1
3 / 3 / 5
Регистрация: 09.02.2014
Сообщений: 169
20.03.2015, 15:47  [ТС] 3
Огроменьшее спасибо очень благодарен!)

Цитата Сообщение от Poznakomlus Посмотреть сообщение
function strToFloat($str =''){
* * return(floatval(str_replace(',', '.', $str)));
}
вот что то на подобии этого пытался сколотить, вопрос в параметре функции strToFloat что это значит $str ='' ?
0
Эксперт PHP
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.03.2015, 15:55 4
Цитата Сообщение от SkyNet123 Посмотреть сообщение
что это значит $str =''
$str переданная в функцию переменная по умолчанию, когда вызов функции осуществляется без передачи переменной strToFloat(); переменная $str равна пустой строке
strToFloat($str) так то-же можно на strToFloat(); уже приведет к ошибке так как пременная $str будет не определена. Кроме того такой тип записи, кроме определения значений по умолчанию удобен тем, что в нормальном редакторе будет подсветка $str = '' и вы поймете, что переменная должна быть строкой
0
3 / 3 / 5
Регистрация: 09.02.2014
Сообщений: 169
20.03.2015, 16:00  [ТС] 5
Спасибо!)
0
20.03.2015, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2015, 16:00
Помогаю со студенческими работами здесь

Точка или запятая? Что нужно ставить после запятой?
Как определить что нужно ставить, между числами? На одном компьютере ругается что точка, на другом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru