2009-03-19 12 views

Respuesta

101

porque creo que todo se puede solucionar con la expresión regular:

var str = ",liger, unicorn, snipe," 
var trim = str.replace(/(^,)|(,$)/g, "") 
// trim now equals 'liger, unicorn, snipe' 
+41

Ahora tienen dos problemas ... – eyelidlessness

+0

(Nota: Me upvoted esta respuesta, al igual que los dichos trillados.) – eyelidlessness

+0

Gracias. Regexs son increíbles – CherryFlavourPez

13

probar esto, ya que no todo lo puede ser resuelto por ER e incluso algunas cosas que puede, no debe ser :-)

<script type="text/javascript"> 
    var str = ",liger, unicorn, snipe,"; 
    if (str.substr(0,1) == ",") { 
     str = str.substring(1); 
    } 
    var len = str.length; 
    if (str.substr(len-1,1) == ",") { 
     str = str.substring(0,len-1); 
    } 
    alert (str); 
</script> 
+0

+1 para el comentario de RE. – Raithlin

+0

Thanx Pax funciona – santanu

+4

No pregunte qué REs pueden hacer por usted, ¡pero qué puede hacer por REs! :) – cobbal

30

Mientras que la respuesta de cobbal es la "mejor", en mi opinión, quiero agregar una nota: dependiendo del formato de la cuerda y el propósito de pelar comas iniciales y finales, también debes tener cuidado con los espacios en blanco .

var str = ',liger, unicorn, snipe,'; 
var trim = str.replace(/(^\s*,)|(,\s*$)/g, ''); 

Por supuesto, con esta aplicación, el valor de la utilización de expresiones regulares sobre métodos básicos de cuerda es más evidente.

+1

la adición del espacio en blanco fue el factor decisivo para mí. – Joe

+0

si alguien está interesado en recortar espacios también, mejor utilice la respuesta de Herostwist a continuación, es mejor. – Sharky

14

Si desea asegurarse de que no tiene comas o espacios en blanco al final, puede utilizar esta expresión regular.

var str = ' , , , foo, bar, '; 
str = str.replace(/(^[,\s]+)|([,\s]+$)/g, ''); 

vuelve

"foo, bar" 
+0

Para aquellos que se preguntan por qué esto difiere de la falta de definición, esta solución elimina espacios que están antes de la coma final o después de la coma de apertura. – SamGoody

+0

También maneja múltiples comas iniciales o finales. Por ejemplo, ',,, liger, unicornio, snipe ,,,' -> 'liger, unicornio, snipe'. –

Cuestiones relacionadas