programing

PHP : 입력이 유효한 숫자인지 확인하는 가장 좋은 방법은 무엇입니까?

nasanasas 2020. 11. 17. 08:10
반응형

PHP : 입력이 유효한 숫자인지 확인하는 가장 좋은 방법은 무엇입니까?


입력이 숫자인지 확인하는 가장 좋은 방법은 무엇입니까?

  • 1-
  • +111+
  • 5xf
  • 0xf

이러한 종류의 숫자는 유효하지 않아야합니다. 123, 012 (12), 양수와 같은 숫자 만 유효해야합니다. 이것은 mye 현재 코드입니다.

$num = (int) $val;
if (
    preg_match('/^\d+$/', $num)
    &&
    strval(intval($num)) == strval($num)
    )
{
    return true;
}
else
{
    return false;
}

ctype_digit 이 목적을 위해 정확하게 제작되었습니다.


나는 사용한다

if(is_numeric($value) && $value > 0 && $value == round($value, 0)){

값이 숫자, 양수 및 정수인지 확인

http://php.net/is_numeric

나는 ctype_digit가 "is_numeric"만큼 읽을 수 없기 때문에 정말로 좋아하지 않으며 실제로 값이 숫자인지 확인하고 싶을 때 실제로 결함이 적습니다.


filter_var()

$options = array(
    'options' => array('min_range' => 0)
);

if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) {
 // you're good
}

return ctype_digit($num) && (int) $num > 0

PHP 버전 4 이상 버전 :

<?PHP
$input = 4;
if(is_numeric($input)){  // return **TRUE** if it is numeric
    echo "The input is numeric";
}else{
    echo "The input is not numeric";
}
?>

가장 안전한 방법

if(preg_replace('/[0-9\.\-]/', '', $value) == ""){
  //if all made of numbers "-" or ".", then yes is number;
}

참고 URL : https://stackoverflow.com/questions/11418461/php-best-way-to-check-if-input-is-a-valid-number

반응형