2010-11-06 28 views
6

Duplicar posibles:
Check if a String Ends with a Number in PHPComprobar si una cadena comienza con un número en PHP

Estoy tratando de implementar la función de abajo. ¿Sería mejor utilizar algún tipo de expresión regular aquí? Necesito capturar el número también.

function startsWithNumber($string) { 
    $startsWithNumber = false; 

    // Logic 

    return $startsWithNumber; 
} 
+2

duplicado exacto de [Comprobar si una cadena termina con un número en PHP] (http://stackoverflow.com/questions/4114609/check-if-a-string-ends-with-a-number-in-php) –

+0

Esta es prácticamente la misma pregunta que su última: http: //stackoverflow.com/questions/4114609/check-if-a-string-ends-with-a-number-in-php. ¿No crees que la respuesta a eso también resolvería esto? Y no, no use una expresión regular para verificar un solo carácter de una cadena. –

+0

Sí, no hay necesidad de comenzar dos preguntas para esto. –

Respuesta

5

Algo parecido a esto puede funcionar para usted:

function str2int($string) { 
    $length = strlen($string); 
    for ($i = 0, $int = ''; $i < $length; $i++) { 
    if (is_numeric($string[$i])) 
     $int .= $string[$i]; 
    else break; 
    } 

    return (int) $int; 
} 
+1

O la simple 1 línea 'preg_match' en la otra respuesta http://stackoverflow.com/a/4114620/1992193 –

+0

Si solo estás buscando el primer caracter, las cadenas se pueden ver como matrices de caracteres. Para acceder al primer carácter, puede usar rápidamente el operador [] en la posición cero. p.ej. 'is_numeric ($ cadena [0])' –

13

Puede utilizar substr y ctype_digit:

function startsWithNumber($string) { 
    return strlen($string) > 0 && ctype_digit(substr($string, 0, 1)); 
} 

El strlen adicional es sólo necesaria como ctype_digit vuelve cierto para una cadena vacía antes de PHP 5.1.

O bien, si bien desea utilizar una expresión regular:

function startsWithNumber($str) { 
    return preg_match('/^\d/', $str) === 1; 
} 
+2

Me gusta este enfoque más .. Muy simple – user284503

Cuestiones relacionadas