2011-04-25 24 views

Respuesta

76

uso de un simple expresión regular:

var s = "item,"; 
s = s.replace(/,+$/, ""); 
+4

Sólo quería añadir: no haga Olvide la barra diagonal inversa si reemplaza caracteres que tienen significados para expresiones regulares (por ejemplo, '.'). –

13
if(myStr.charAt(myStr.length-1) == ",") { 
    myStr = myStr.slice(0, -1) 
} 
+3

Ese 'if' debería ser probablemente un' while'. – icktoofay

+0

Ummmm ¿por qué? Si el último carácter es una coma, corta el último carácter ... Me refiero al caso de uso más probable para esto, es cuando obtienes un elemento de una matriz y haces un texto JSON-ish o algo así. Vaya como elemento de impresión del elemento foreach y "," pero luego se da cuenta, "amigo, tengo un extra", "y quiero eliminarlo". –

+0

Él dice "," s en plural, pero estoy de acuerdo en que el título es confuso. –

8

Una función para recortar los caracteres finales sería:

function trimTrailingChars(s, charToTrim) { 
 
    var regExp = new RegExp(charToTrim + "+$"); 
 
    var result = s.replace(regExp, ""); 
 

 
    return result; 
 
} 
 

 
function test(input, charToTrim) { 
 
    var output = trimTrailingChars(input, charToTrim); 
 
    console.log('input:\n' + input); 
 
    console.log('output:\n' + output); 
 
    console.log('\n'); 
 
} 
 

 
test('test////', '/'); 
 
test('///te/st//', '/');

+0

¿Cómo funcionaría en '/// te/st //,'/'? –

+0

@TomasHesse - parece funcionar Agregué un fragmento de arriba para probarlo –

Cuestiones relacionadas