Question Couper / couper / découper JavaScript hors le dernier caractère de la chaîne


J'ai une chaîne, 12345.00, et je voudrais qu'il revienne 12345.0.

J'ai regardé trim, mais on dirait qu'il ne fait que couper les espaces et slice que je ne vois pas comment cela fonctionnerait. Aucune suggestion?


1480
2018-06-04 20:31


origine


Réponses:


Vous pouvez utiliser le sous-chaîne fonction:

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

Ceci est la réponse acceptée, mais selon les conversations ci-dessous, le tranche la syntaxe est beaucoup plus claire:

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

2448
2018-06-04 20:35



Vous pouvez utiliser tranche! Vous devez juste vous assurer que vous savez comment l'utiliser. Les # positifs sont relatifs au début, les nombres négatifs sont relatifs à la fin.

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

1154
2018-06-04 21:41



Vous pouvez utiliser le sous-chaîne méthode des objets de chaîne JavaScript:

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

Il supprime de façon inconditionnelle les quatre derniers caractères de la chaîne s.

Cependant, si vous voulez conditionnellement supprimer les quatre derniers caractères, seulement s'ils sont exactement  _bar:

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

248
2017-08-30 03:08



La méthode la plus simple consiste à utiliser slice méthode de la chaîne, qui permet des positions négatives (correspondant aux décalages de la fin de la chaîne):

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

Si vous aviez besoin de quelque chose de plus général pour tout supprimer après (et incluant) le dernier trait de soulignement, vous pourriez faire ce qui suit (aussi longtemps que s est garanti pour contenir au moins un trait de soulignement):

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

149
2017-08-30 10:15



Pour un nombre comme votre exemple, je recommande de le faire sur substring:

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

Notez que cela arrondira le nombre, cependant, ce que j'imagine est désiré mais peut-être pas:

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

63
2018-06-04 20:42



Utilisation de la fonction de tranche de JavaScript:

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

Cela pourrait être utilisé pour supprimer '_bar' à la fin d'une chaîne, de n'importe quelle longueur.


19
2018-02-27 11:14



Une expression régulière est ce que vous cherchez:

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

13
2017-08-30 03:09



Que diriez-vous:

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

8
2018-06-04 20:38