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進数の対数は、数値の長さに等しくなります。
Webフォームを使用している場合は、テキスト入力を10文字のみに制限して、アクセシビリティを追加してください(ユーザーは間違って入力したり、送信したり、間違いに関するダイアログを取得したり、修正したり、送信したりしたくない)再びなど)
ループでintval関数を使用します。この例を参照してください
<?php
$value = 16432;
$length=0;
while($value!=0) {
$value = intval($value/10);
$length++
}
echo "Length of Integer:- ".$length;
?>
あなたの質問から、「整数の長さを取得したい場合、入力は英数字データを受け入れず、整数の長さは10を超えることはできません。これがあなたの意味である場合、これは最良の方法です。それを達成するために:」
<?php
$int = 1234567890; //The integer variable
//Check if the variable $int is an integer:
if (!filter_var($int, FILTER_VALIDATE_INT)) {
echo "Only integer values are required!";
exit();
} else {
// Convert the integer to array
$int_array = array_map('intval', str_split($int));
//get the lenght of the array
$int_lenght = count($int_array);
}
//Check to make sure the lenght of the int does not exceed or less than10
if ($int_lenght != 10) {
echo "Only 10 digit numbers are allow!";
exit();
} else {
echo $int. " is an integer and its lenght is exactly " . $int_lenght;
//Then proceed with your code
}
//This will result to: 1234556789 is an integer and its lenght is exactly 10
?>
携帯電話番号(電話番号)を評価する場合は、選択したデータ型としてintを使用しないことをお勧めします。代わりに文字列を使用します。これらの数値を使用して数学を実行する方法や理由を予測できないためです。ベストプラクティスとして、計算を行う/行う必要がある場合は、int、floatなどを使用します。使用しない場合は文字列を使用します。
$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
}