2012-10-06 23 views

Respuesta

43

que no es necesario para la expresión regular que utilice trim():

$words = '  my words  '; 
$words = trim($words); 
var_dump($words); 
// string(8) "my words" 

Esta función devuelve una cadena con espacios en blanco eliminados desde el principio y el final de str.

+0

¿Cómo es que esto no funcionó para mí? Todavía veo mis espacios en blanco después de las cuerdas. ¿Algún consejo? ¿Alguien? – ihue

+0

Quizás no sean realmente espacios en blanco. Encontré este problema con textos de Office Word. –

5

Para completar (ya que esta cuestión se marca regex), aquí es una reimplementación trim() en expresiones regulares:

function preg_trim($subject) { 
    $regex = "/\s*(\.*)\s*/s"; 
    if (preg_match ($regex, $subject, $matches)) { 
     $subject = $matches[1]; 
    } 
    return $subject; 
} 
$words = '  my words  '; 
$words = preg_trim($words); 
var_dump($words); 
// string(8) "my words" 
1

Por alguna razón dos soluciones anteriores aún no ha trabajado para mí, por lo que me ocurrió con esta solución.

function cleanSpaces($string) { 
    while(substr($string, 0,1)==" ") 
    { 
     $string = substr($string, 1); 
     cleanSpaces($string); 
    } 
    while(substr($string, -1)==" ") 
    { 
     $string = substr($string, 0, -1); 
     cleanSpaces($string); 
    } 
    return $string; 
} 
+0

Tenga en cuenta que si bien esto puede funcionar, la sobrecarga de la recursividad hace que esto sea extremadamente lento e ineficiente. No estoy seguro de por qué el ajuste no funcionó para usted, ya que debería funcionar bien en cualquier cadena. –

Cuestiones relacionadas