J'ai une chaîne, 12345.00
, et je voudrais qu'elle renvoie 12345.0
.
J'ai regardé trim
, mais il semble qu'il ne fait que supprimer les espaces et slice
dont je ne vois pas comment cela fonctionnerait. Des suggestions?
J'ai une chaîne, 12345.00
, et je voudrais qu'elle renvoie 12345.0
.
J'ai regardé trim
, mais il semble qu'il ne fait que supprimer les espaces et slice
dont je ne vois pas comment cela fonctionnerait. Des suggestions?
Vous pouvez utiliser la fonction substring:
let str = "12345.00";
str = str.substring(0, str.length - 1);
console.log(str);
Ceci est la réponse acceptée, mais selon les conversations ci-dessous, la syntaxe de slice est beaucoup plus claire:
let str = "12345.00";
str = str.slice(0, -1);
console.log(str);
@Kheu - la notation de tranche est beaucoup plus propre pour moi. J'utilisais auparavant la version sous-chaîne. Merci!
Je suis désolé si je me trompe, mais n'avez-vous pas besoin d'assigner à nouveau la valeur de str.substring à str? Comme str = str.substring(0, str.length -1);
Les méthodes slice
et substring
sont presque les mêmes; sauf que slice()
accepte un index négatif, relatif à la fin de la chaîne, mais pas substring
, il lance une erreur out-of-bound
Vous pouvez utiliser slice! Vous devez juste vous assurer de savoir comment l'utiliser. Les numéros positifs sont relatifs au début, les numéros négatifs sont relatifs à la fin.
js>"12345.00".slice(0,-1)
12345.0
Par rapport à la solution acceptée, ceci est beaucoup plus élégant et peut même être utilisé avec des chaînes créées dynamiquement
J'aime cette méthode car elle est cohérente avec la pensée php pour la fonction substr, plus facile à retenir et à écrire rapidement.
@SameerAlibhai Je suis d'accord avec vous, mais ne pourrait-on pas utiliser la méthode substring
sur des chaînes dynamiques aussi? En utilisant str.length pour obtenir dynamiquement la longueur?
Vous pouvez utiliser la méthode substring des objets string JavaScript :
s = s.substring(0, s.length - 4)
Cela supprime inconditionnellement les quatre derniers caractères de la chaîne s
.
Cependant, si vous voulez supprimer conditionnellement les quatre derniers caractères, seulement s'ils sont exactement _bar
:
var re = /_bar$/;
s.replace(re, "");
Alternatively: s.slice(0, -"_bar".length) (utilisé si on ne veut pas coder en dur le nombre de caractères)
La méthode la plus simple consiste à utiliser la méthode slice
de la chaîne de caractères, qui permet des positions négatives (correspondant aux décalages depuis la fin de la chaîne) :
const s = "votre chaîne";
const sansQuatreDerniersCaracteres = s.slice(0, -4);
Si vous avez besoin de quelque chose de plus général pour supprimer tout ce qui se trouve après (et y compris) le dernier tiret bas, vous pouvez faire ce qui suit (tant que s
contient au moins un tiret bas) :
const s = "votre_chaine";
const sansDernierMorceau = s.slice(0, s.lastIndexOf("_"));
console.log(sansDernierMorceau);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
38 votes
Vous souciez-vous de l'arrondi ? 12345.46 = 12345.5 ou 12345.4 ?
9 votes
Savez-vous quel est le suffixe ou voulez-vous diviser et supprimer le dernier mot en fonction de vos tirets du bas?
71 votes
Ho ho ho, @RSolberg: vous ne pouvez pas arrondir une chaîne!
61 votes
@Ziggy dit quoi?
Math.round('0.5') === 1
;)20 votes
@TWiStErRob Oh JavaScript, que vais-je faire de toi ? *secoue la tête*