Проверьте, имеет ли переменная число php
Я хочу проверить, имеет ли переменная число в нем, я просто хочу посмотреть, есть ли он, мне все равно, есть ли в нем что-то еще:
"abc" - false
"!./#()" - false
"!./#()abc" - false
"123" - true
"abc123" - true
"!./#()123" - true
"abc !./#() 123" -true
Есть простые способы сделать это, если вы хотите знать, что это все числа, но нет, если у него есть только один. Благодарим за помощь.
Ответы
Ответ 1
Вы можете использовать функцию strcspn
:
if (strcspn($_REQUEST['q'], '0123456789') != strlen($_REQUEST['q']))
echo "true";
else
echo "false";
strcspn
возвращает длину части, которая не содержит целых чисел. Мы сравниваем это с длиной строки, и если они отличаются, то должно быть целое число.
Нет необходимости вызывать механизм регулярных выражений для этого.
Ответ 2
$result = preg_match("/\\d/", $yourString) > 0;
Ответ 3
Удерживаясь духом @Мартина, я нашел еще одну функцию, которая работает аналогичным образом.
(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 />';
}
?>
Ответ 4
Это должно помочь вам:
$numberOfNumbersFound = preg_match("/[0-9]+/", $yourString);
Вы можете получить больше от функции preg_match, так что посмотрите его руководство
Ответ 5
вы можете использовать этот шаблон для проверки своей строки с помощью регулярных выражений:
$isNumeric = preg_match("/\S*\d+\S*/", $string) ? true : false;