¿Cómo corto/corto/recorto el último carácter de una cadena usando Javascript?

Resuelto Phill Pafford asked hace 15 años • 25 respuestas

Tengo una cadena 12345.00y me gustaría que regresara 12345.0.

Lo he mirado trim, pero parece que solo está recortando espacios en blanco y sliceno veo cómo funcionaría. ¿Alguna sugerencia?

Phill Pafford avatar Jun 05 '09 03:06 Phill Pafford
Aceptado

Puedes usar la función de subcadena :

let str = "12345.00";
str = str.substring(0, str.length - 1);
console.log(str);
Expandir fragmento

Esta es la respuesta aceptada, pero según las conversaciones siguientes, la sintaxis del segmento es mucho más clara:

let str = "12345.00";
str = str.slice(0, -1); 
console.log(str);
Expandir fragmento

Jon Erickson avatar Jun 04 '2009 20:06 Jon Erickson

¡ Puedes usar rebanadas ! Sólo debes asegurarte de saber cómo usarlo. Los # positivos son relativos al principio, los números negativos son relativos al final.

js>"12345.00".slice(0,-1)
12345.0
Jason S avatar Jun 04 '2009 21:06 Jason S

Puede utilizar el método de subcadena de objetos de cadena de JavaScript:

s = s.substring(0, s.length - 4)

Elimina incondicionalmente los últimos cuatro caracteres de la cadena s.

Sin embargo, si desea eliminar condicionalmente los últimos cuatro caracteres, solo si son exactamente _bar :

var re = /_bar$/;
s.replace(re, "");
Alex Martelli avatar Aug 30 '2010 03:08 Alex Martelli

El método más sencillo es utilizar el slicemétodo de la cadena, que permite posiciones negativas (correspondientes a desplazamientos desde el final de la cadena):

const s = "your string";
const withoutLastFourChars = s.slice(0, -4);

Si necesita algo más general para eliminar todo lo que está después (incluido) el último guión bajo, puede hacer lo siguiente (siempre que sse garantice que contenga al menos un guión bajo):

const s = "your_string";
const withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
console.log(withoutLastChunk);
Expandir fragmento

Tim Down avatar Aug 30 '2010 10:08 Tim Down

Para un número como el de su ejemplo, recomendaría hacer esto de nuevo substring:

console.log(parseFloat('12345.00').toFixed(1));
Expandir fragmento

Tenga en cuenta que esto en realidad redondeará el número, lo que imagino que es deseado, pero tal vez no:

console.log(parseFloat('12345.46').toFixed(1));
Expandir fragmento

Paolo Bergantino avatar Jun 04 '2009 20:06 Paolo Bergantino