Я хочу получить длину целочисленных значений для проверки в PHP. Пример: Мобильные номера должны быть всего 10 целых значений. Он должен быть не более 10 или менее 10, а также не должен содержать буквенных символов.
Как я могу проверить это?
Я хочу получить длину целочисленных значений для проверки в PHP. Пример: Мобильные номера должны быть всего 10 целых значений. Он должен быть не более 10 или менее 10, а также не должен содержать буквенных символов.
Как я могу проверить это?
if (preg_match('/^\d{10}$/', $string)) {
// pass
} else {
// fail
}
$num_length = strlen((string)$num);
if($num_length == 10) {
// Pass
} else {
// Fail
}
Это будет работать практически во всех случаях (кроме нуля) и легко закодировано на других языках:
$length = ceil(log10(abs($number) + 1)
На мой взгляд, лучший способ:
$length = ceil(log10($number))
Обозначенный десятичный логарифм равен длине числа.
Если вы используете веб-форму, убедитесь, что вы ограничиваете ввод текста, удерживая только 10 символов, чтобы добавить некоторую доступность (пользователи не хотят вводить их неправильно, отправлять, получать диалог об их ошибке, исправить его, отправить снова и т.д.)
Использовать функцию intval в цикле, См. Этот пример
<?php
$value = 16432;
$length=0;
while($value!=0) {
$value = intval($value/10);
$length++
}
echo "Length of Integer:- ".$length;
?>
$input = "03432 123-456"; // A mobile number (this would fail)
$number = preg_replace("/^\d/", "", $number);
$length = strlen((string) $number);
if ($number == $input && $length == 10) {
// Pass
} else {
// Fail
}
Если вы оцениваете номера мобильных телефонов (номера телефонов), я бы рекомендовал не использовать int в качестве выбранного вами типа данных. Вместо этого используйте строку, потому что я не могу предвидеть, как и почему вы хотите сделать математику с этими числами. Как наилучшая практика, используйте int, floats и т.д., Когда вам нужно/нужно делать математику. Используйте строки, когда вы этого не сделаете.