|
|
|
| Как проверить строку в php на содержание только цифр, а если там имеется хотя бы один символ не от 0 до 9 то завершать программу | |
|
|
|
|
|
|
|
для: BlueWolf
(06.07.2010 в 14:38)
| |
<?php
if (!preg_match("/^\d+$/", $var))
die('Конец программы');
|
| |
|
|
|
|
|
|
|
для: BlueWolf
(06.07.2010 в 14:38)
| |
<?php
$str = "12345";
if (!preg_match("/^([0-9])+$/", $str)) {
echo "завершить программу";
exit();
}
echo "строка содержит только цифры";
|
| |
|
|
|
|
|
|
|
для: BlueWolf
(06.07.2010 в 14:38)
| | или так, мб быстрее :)
<?
if(is_numeric($var) && str_pos($var, '-') === false) {
echo 'в переменной только числа';
}
|
| |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 16:00)
| | str_pos() вообще то слитно пишется: strpos()
А по скорости вот так еще быстрее))
<?
if($var === abs((int)$var)){
echo 'в переменной только цифры';
}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(07.07.2010 в 10:16)
| | вот так работать не будет
<?php
$var = "12345";
if($var === abs((int)$var)){
echo 'в переменной только цифры';
}
|
| |
|
|
|
|
|
|
|
для: psychomc
(08.07.2010 в 15:13)
| | >вот так работать не будет
Естественно. Разговор шел про цифры. Если нужно их строковое представление, строгое равенство следует заменить обычным. | |
|
|
|
|
|
|
|
для: Николай2357
(08.07.2010 в 23:32)
| | а кто сказал что разговор шел про цифры?
Тема: "Как проверить строку в php на содержание только цифр..." | |
|
|
|
|
|
|
|
для: Николай2357
(07.07.2010 в 10:16)
| | ой ли?
а если там символов 50? | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2010 в 02:01)
| |
<?
$no = "123";
if(preg_match("/[^\d]{1}/",$no)){
echo "Not a number";
exit();
}
|
тоже работает. Хоть 100 цифр
А автор тему создал и в отпуск уехал видимо | |
|
|
|
|
|
|
|
для: Tonik992
(09.07.2010 в 03:20)
| | только это ничем не лучше ctype_digit | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2010 в 05:50)
| | Покажите исходник этой функции (тело её) | |
|
|
|
|
|
|
|
для: Tonik992
(09.07.2010 в 11:51)
| | Если вас интересуют исходники ядра php, то php - это open source project.
Полагаю, найдете, где искать. | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2010 в 12:02)
| | Чем все-таки мой вариант не лучше ctype_digit ? | |
|
|
|
|
|
|
|
для: Tonik992
(09.07.2010 в 12:08)
| | тем, что применяет существенно более сложные инструменты и ресурсы.
ctype_digit почти наверняка определена как-то так:
int ctype_digit(string s)
{
char *p = s.located;
for(int c, i = 0, n = s.length; i < n; i++)
if((с = *p++) < '0' || c > '9')
return false;
return true;
}
|
| |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 16:00)
| | А где проверка на "e", "E", "x", "X" и "."? | |
|
|
|
|
|
|
|
для: BlueWolf
(06.07.2010 в 14:38)
| | ctype_digit() | |
|
|
|