3
votes

Supprimer toutes les décimales d'une chaîne sauf la dernière

Comment supprimer toutes les décimales d'une chaîne à l'exception de la dernière dans jQuery ou JavaScript?

Chaînes d'origine

jQuery('.addui-slider-handle-l span').text()

Résultats souhaités

XXX

Mon code jQuery pour extraire les valeurs:

1233543.00
456.00
1234.00


0 commentaires

4 Réponses :


5
votes

Essayez ceci en utilisant ceci sur la chaîne:

.replace(/[.](?=.*[.])/g, "");


5 commentaires

ou .replace (/\.(?=.*\.)/ g, "");


Donc la grande question: qu'est-ce qui est mieux? ;RÉ


[.] et \. sont les mêmes: D Il n'y a pas mieux.


Eh bien, vous pourriez dire que @NinaScholz est meilleur uniquement parce qu'il contient 2 caractères de moins en moins.


@lacostenycoder Hard; D Merci à vous deux. Fonctionne à merveille maintenant!



1
votes
function text(string){

var arrayDots=string.split(".")

var lastPart= arrayDots[arrayDots.length-1];

    var subresult="";

    for(var i=0; i<arrayDots.length-1; i++){
       subresult=subresult+arrayDots[i]; 
    }
     var result= subresult+"."+lastPart;

    console.log(result);
}  
This is not the easiest way but you can get the logic

0 commentaires

0
votes

Je ne sais pas si c'est plus efficace que la solution pure regex présentée, mais je sais qu'en général beaucoup de gens sont timides avec les regex, alors voici une alternative non-regex.

La logique consiste à diviser la chaîne au niveau des points, à réinsérer le dernier point, puis à rejoindre une chaîne.

var x = "1.233.543.00".split('.');
x.length>1 && x.splice(-1,0,'.');
x = x.join('');


0 commentaires

0
votes

Ici, vous pouvez l'exécuter dans une console sur cette page et obtenir ce que vous voulez pour le plaisir

$('#question').find('code').text().split(/\s/).slice(0,3).map(n => n.replace(/\.(?=.*\.)/g, ""))


0 commentaires