Проверьте, имеет ли переменная число php

Я хочу проверить, имеет ли переменная число в нем, я просто хочу посмотреть, есть ли он, мне все равно, есть ли в нем что-то еще:

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

Есть простые способы сделать это, если вы хотите знать, что это все числа, но нет, если у него есть только один. Спасибо за вашу помощь.

Вы можете использовать функцию strcspn :

 if (strcspn($_REQUEST['q'], '0123456789') != strlen($_REQUEST['q'])) echo "true"; else echo "false"; 

strcspn возвращает длину части, которая не содержит целых чисел. Мы сравниваем это с длиной строки, и если они отличаются, то должно быть целое число.

Для этого нет необходимости ссылаться на механизм регулярных выражений.

 $result = preg_match("/\\d/", $yourString) > 0; 

Держась за дух @ Мартина, я нашел еще одну функцию, которая работает аналогичным образом.

 (strpbrk($var, '0123456789') 

например, тестовый корпус

 <?php function a($var) { return (strcspn($var, '0123456789') != strlen($var)); } function b($var) { return (strpbrk($var, '0123456789')); } $var = array("abc", "!./#()", "!./#()abc", "123", "abc123", "!./#()123", "abc !./#() 123"); foreach ($var as $v) { echo $v . ' = ' . b($v) .'<hr />'; } ?> 

Это должно помочь вам:

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

Вы можете получить больше от функции preg_match, так что посмотрите на его руководство

вы можете использовать этот шаблон для проверки своей строки с помощью регулярных выражений:

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