saber - typeof php
Comprueba si la variable tiene un nĂºmero php (5)
Quiero comprobar si una variable tiene un número, solo quiero ver si hay alguna. No me importa si tiene algo más que decir:
"abc" - false
"!./#()" - false
"!./#()abc" - false
"123" - true
"abc123" - true
"!./#()123" - true
"abc !./#() 123" -true
Hay formas fáciles de hacerlo si quiere saber que son todos los números, pero no si solo tiene uno. Gracias por tu ayuda.
Aferrándome al espíritu de @Martin, encontré otra función que funciona de manera similar.
(strpbrk($var, ''0123456789'')
por ejemplo, caso de prueba
<?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 />'';
}
?>
Esto debería ayudarte a:
$numberOfNumbersFound = preg_match("/[0-9]+/", $yourString);
Puede obtener más de la función preg_match, así que eche un vistazo a su manual
Puede usar la función strcspn
:
if (strcspn($_REQUEST[''q''], ''0123456789'') != strlen($_REQUEST[''q'']))
echo "true";
else
echo "false";
strcspn
devuelve la longitud de la parte que no contiene ningún número entero. Comparamos eso con la longitud de la cadena, y si difieren, entonces debe haber habido un número entero.
No es necesario invocar el motor de expresiones regulares para esto.
puede usar este patrón para probar su cadena usando expresiones regulares:
$isNumeric = preg_match("//S*/d+/S*/", $string) ? true : false;
$result = preg_match("///d/", $yourString) > 0;