Değişken bir sayı php sahip olmadığını kontrol edin

5 Cevap php

Ben bir değişken içinde bir numara olup olmadığını kontrol etmek istiyorum, ben sadece bunu gibi içinde başka herhangi bir şey varsa umurumda değil eğer varsa görmek istiyorum:

"abc" - false
"!./#()" - false
"!./#()abc" - false
"123" - true
"abc123" - true
"!./#()123" - true
"abc !./#() 123" -true

Eğer sadece bir tane varsa hepsi sayılar olduğunu bilmiyorum ama isterseniz bunu yapmanın kolay yolu vardır. Yardımlarınız için teşekkürler.

5 Cevap

Bu size yardımcı olacaktır:

$numberOfNumbersFound = preg_match("/[0-9]+/", $yourString);

Sen preg_match fonksiyonu daha iyi, bu yüzden its manual bir göz olabilir

@ Martin ruhu tutarak, ben benzer şekilde çalışan bir başka işlevi bulundu.

(strpbrk($var, '0123456789')

örneğin test case

<?php

function a($var) {
    return (strcspn($var, '0123456789') != strlen($var)) ? 'true' : 'false';
}

function b($var) {
    return (strpbrk($var, '0123456789')) ? 'true' : 'false';
}

$var = array("abc", "!./#()", "!./#()abc", "123", "abc123", "!./#()123", "abc !./#() 123");

foreach ($var as $v) {
    echo $v . ' = ' . b($v) .'<hr />';
}

?>

See Tomalak's answer.

Sen Regular Expressions PHP içinde kontrol etmek isteyebilirsiniz böylece neler olduğunu anlamak.

Düzenli ifadeler kullanarak dize sınamak için bu deseni kullanabilirsiniz:

$isNumeric = preg_match("/\S*\d+\S*/", $string) ? true : false;