2017-10-18 8 views
0

j'ai un certain nombre, par exemple:nombre de chiffres et deux caractères après le point

25297710.1088 

Je dois ajouter un peu entre eux et laisser deux caractères après le point. Par exemple:

25 297 710.10 

Alors que je me suis arrêté à ceci:

$(td).text().reverse().replace(/((?:\d{2})\d)/g, '$1 ').reverse()); 
String.prototype.reverse = function() { 
    return this.split('').reverse().join(''); 
} 

A partir de ce code, je reçois le texte suivant:

25 297 710.1 088 

$(td).text() obtenir un numéro de la cellule du rangée dans la table. Si j'ai chiffres, par exemple:

25297710.10 

puis-je obtenir:

25 297 710.10 

Il est ok. Que dois-je faire pour laisser deux caractères après le point?

+0

Divisez la chaîne par un point, puis, après les manipulations, ajoutez le reste à la nouvelle chaîne. – Sergey

+0

http://numeraljs.com/ Vous le savez? –

+0

Sergey - Je vais essayer ça. Merci. – mosxe

Répondre

1

Vous pouvez utiliser un RegExp pour mettre en forme le nombre/chaîne. L'entrée est convertie en chaîne à l'aide de la méthode toString appropriée.

function formatNumber(input) { 
 
    return input.toString().replace(/\d*(\d{2})(\d{3})(\d{3})\.(\d{2})\d*$/, "$1 $2 $3.$4"); 
 
} 
 

 
var str = "25297710.1088"; 
 
var num1 = 25297710.1088; 
 
var num2 = 2545454545454.2254; 
 
var num3 = 232545454511112.3354122313123123; 
 

 
console.log(formatNumber(str)); 
 
console.log(formatNumber(num1)); 
 
console.log(formatNumber(num2)); 
 
console.log(formatNumber(num3));

+0

Ce n'est pas fonctionne, car il ne laisse pas deux caractères après le point et si nous avons des chiffres, par exemple: 2545454545454.1054 - ne fonctionne pas aussi. – mosxe

+0

Fixé. Réessayer. –

+0

Bien. Je mets à jour la fonction sur return input.toString(). Replace (/ (\ d {2}) \ d * $ /, "$ 1"). Replace (/ \ B (? = (\ D {3}) + (? ! \ d))/g, ""); Mais quand le nombre: 22000 j'ai eu: 22 – mosxe

0

Je pense que vous pouvez faire les prochaines étapes:

1) vous avez 25 297 710,10

2) vous trouverez la position de symbole dot -> @ pos

3) vous remplacez les bits dans la chaîne entre @pos et la fin de votre chaîne

4) vous coupez la chaîne après le point à 2 caractères

+0

Je vais mettre en œuvre cela. Merci – mosxe