|
|
|
| Как сделать шаблон для целого числа? Т.е мне надо чтоб рег. выражения проверяло число целое или нет (целые числа - все положительные, отрицательные и 0).
"|^[\d]*$|"-этот вариант не работает. Заранее спасибо. | |
|
|
|
|
|
|
|
для: jeans1986
(20.09.2007 в 12:27)
| | | |
|
|
|
|
|
|
|
для: SHAman
(20.09.2007 в 12:31)
| | Можно и без регулярок обойтись, функция is_int();
<?php
$int=9.8;
if(is_int($int)){
print "Целое число";
}
?>
|
Или же is_integer() собственно одно и тоже | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 12:55)
| | Можно и без регулярок обойтись, функция is_int()
Эта функция проверяет тип переменной, а не само содержимое. | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 15:21)
| | А здесь и не надо проверять содержимое, достаточно проверить тип, так как тип integer не может быть с плавающей запятой | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 15:34)
| | Поскольку автор не сказал, что нужно проверять тип переменной, а сказал только про RegEx для целого числа, то Вы не можете утверждать, что содержимое проверять не надо.
<?php
$num = "10"; //Число не целое?
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 15:36)
| | Вообщем это дело автора какой вариант выбирать, он то уж думаю точнее знает что ему нужно. Но если можно обойтись без регулярок, то думаю нужно использовать это | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 15:41)
| | Ну иногда это не так... | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 15:43)
| | Если это какие то частные случаи, как вы привели пример выше, чтобы число проверять как содержимое строки. | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 15:49)
| | RegEx для того и существует, чтобы работать со строками. :) | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 15:59)
| | А я и не говорил, что не для этого. Я считаю что если надо проверить число целое оно или нет, то и надо проверять как число, а не как строку, но это может быть мое субъективное мнение | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 16:02)
| | Я бы тогда проверял так:
<?php
$foo = "10";
if($foo <> (int) $foo)
{
echo "It isn't an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 16:05)
| | Тогда уж вот так
<?php
$foo = "10";
if($foo == (int) $foo)
{
echo "It is an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 16:12)
| | А может вообще так?
<?php
$foo = "10";
if( !($foo == (int) $foo) )
{
echo "It isn't an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 16:16)
| |
echo "It is an integer.";
|
Вот эта надпись в переводе означает "Это-целое число"
Если вы уж так пишете | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 16:19)
| | Вот эта надпись в переводе означает "Это-целое число"
Спасибо большое. А я думал что же я написал. :) | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 16:21)
| | Давайте на вот этом остановимся
<?php
$foo = 10;
if((int) $foo)
{
echo "It is an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 16:28)
| | Вы что? Это никуда не годится. Число может быть равно нулю, строка может начинаться с цифр, не равных нулю. | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 16:35)
| | Автор хотел чтобы в диапозоне был ноль
Тогда подойдет
<?php
$foo = 0;
if((int) $foo or $foo=="0")
{
echo "It is an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 16:40)
| | А "100abc" - десятичное целое число? :) | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 17:21)
| | да вы мне уже голову запудрили :)
Короче мой самый первый вариант для проверки числа(именно числа) а не строки был нормальным, т.е. через is_int() | |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 17:32)
| | Число может быть записано в типе string. Будете спорить? :) | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 17:21)
| | На счет вашего примера
<?php
$foo = 10;
if($foo <> (int) $foo)
{
echo "It is an integer.";
}
?>
|
Число 10 не является целым?
И ясмотрю уже поправили echo "It isn't an integer."; :)
А здесь видимо тоже 100abc является целым числом :)
<?php
$foo = "100abc";
if($foo <> (int) $foo)
{
echo "It isn't an integer.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(20.09.2007 в 17:34)
| | В моем коде такого не будет. Потому как "100abc" и 100 вещи разные. | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 18:21)
| | Во вы заморачиваетесь :) Блин, прям война! | |
|
|
|
|
|
|
|
для: SHAman
(20.09.2007 в 21:36)
| | - | |
|
|
|
|
|
|
|
для: Unkind
(20.09.2007 в 18:21)
| | Ну как же небудет?
Выполните свой код
<?php
$foo = "100abc";
if($foo <> (int) $foo)
{
echo "It isn't an integer.";
}else{
echo "It is an integer.";
}
?>
|
Что выведется в браузер? | |
|
|
|
|
|
|
|
для: Faraon
(21.09.2007 в 09:02)
| | if((string) $foo <> (string) (int) $foo) | |
|
|
|
|
|
|
|
для: Unkind
(21.09.2007 в 14:55)
| | Вот так правильно :) | |
|
|
|