我想获得PHP中验证的整数值的长度。 例: 手机号码应该只有10个整数值。它不应超过10或小于10,也不应包含在字母字符中。
我该如何验证?
答案 0 :(得分:116)
$num_length = strlen((string)$num);
if($num_length == 10) {
// Pass
} else {
// Fail
}
答案 1 :(得分:30)
if (preg_match('/^\d{10}$/', $string)) {
// pass
} else {
// fail
}
答案 2 :(得分:10)
这几乎适用于所有情况(零除外),并且可以使用其他语言轻松编码:
$length = ceil(log10(abs($number) + 1)
答案 3 :(得分:6)
在我看来,最好的方法是:
$length = ceil(log10($number))
向上舍入的十进制对数等于数字的长度。
答案 4 :(得分:4)
如果您使用的是网络表单,请确保将文本输入限制为仅包含10个字符以添加一些辅助功能(用户不想输入错误,提交,获取有关其错误的对话框,修复它,再次提交,等等。)
答案 5 :(得分:1)
在循环中使用intval函数, 见这个例子
<?php
$value = 16432;
$length=0;
while($value!=0) {
$value = intval($value/10);
$length++
}
echo "Length of Integer:- ".$length;
?>
答案 6 :(得分:0)
$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
}
答案 7 :(得分:0)
如果您正在评估手机号码(电话号码),那么我建议不要使用int作为您选择的数据类型。请使用字符串,因为我无法预见您希望如何或为什么要使用这些数字进行数学计算。作为最佳实践,当您需要/需要进行数学运算时,请使用int,float等。不要使用字符串。