Pregunta JavaScript cortar / cortar / recortar el último carácter de la cadena


Tengo una cuerda, 12345.00y me gustaría que vuelva 12345.0.

He mirado trim, pero parece que solo está recortando espacios en blanco y slice que no veo cómo funcionaría esto. ¿Alguna sugerencia?


1480
2018-06-04 20:31


origen


Respuestas:


Puedes usar el subcadena función:

var str = "12345.00";
str = str.substring(0, str.length - 1); // "12345.0"

Esta es la respuesta aceptada, pero según las conversaciones a continuación, el rebanada la sintaxis es mucho más clara:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"

2448
2018-06-04 20:35



Puedes usar rebanada! Solo debes asegurarte de que sabes cómo usarlo. Los # positivos son relativos al comienzo, los números negativos son relativos al final.

js>"12345.00".slice(0,-1)
12345.0

1154
2018-06-04 21:41



Puedes usar el subcadena método 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 quieres condicionalmente eliminar los últimos cuatro caracteres, solo si son exactamente  _bar:

var re = /_bar$/;
s.replace(re, "");

248
2017-08-30 03:08



El método más fácil es usar el slice método de la cuerda, que permite posiciones negativas (correspondientes a desplazamientos desde el final de la cuerda):

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

Si necesitabas algo más general para eliminar todo después (e incluyendo) el último guión bajo, podrías hacer lo siguiente (siempre que s se garantiza que contiene al menos un guión bajo):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"

149
2017-08-30 10:15



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

alert(parseFloat('12345.00').toFixed(1)); // 12345.0

Sin embargo, tenga en cuenta que esto realmente redondeará el número, lo que me imagino que se desea, pero tal vez no:

alert(parseFloat('12345.46').toFixed(1)); // 12345.5

63
2018-06-04 20:42



Usando la función de corte de JavaScript:

var string = 'foo_bar';
string = string.slice(0, -4); // Slice off last four characters here

Esto podría usarse para eliminar '_bar' al final de una cadena, de cualquier longitud.


19
2018-02-27 11:14



Una expresión regular es lo que estás buscando:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));

13
2017-08-30 03:09



Qué tal si:

var myString = "12345.00";
myString.substring(0, myString.length - 1);

8
2018-06-04 20:38



"a string".match(/(.*).$/)[1] // => a strin

"a string".match(/(.*).$/) // returns ["a string", "a strin"]

"a string".match(/(.*).{2}$/)[1] // to get two chars off => a stri
  1. (. *), captura cualquier caracter varias veces
  2. ., coincide con el último carácter, en este caso
  3. $, coincide con el final de la cadena

6
2017-12-28 04:38



Use regex:

var aStr = "12345.00";
aStr = aStr.replace(/.$/, '');

6
2017-07-29 04:58