J'ai une zone de texte en Javascript. Lorsque j'entre '0000.00'
dans la zone de texte, je veux savoir comment le convertir en un seul zéro, tel que '0.00'
.Tronquer les zéros d'une chaîne en Javascript
Répondre
Essayez ceci:
<input type="text" onblur="this.value=this.value.replace(/^0+(?=\d\.)/, '')">
var value= document.getElementById("theTextBoxInQuestion").value;
var number= parseFloat(value).toFixed(2);
Est-ce que cela cause des problèmes si le nombre de zéros à gauche de la décimale est très grand? – Eric
Eric a un point, ça ne marchera que si vous avez un zéro. Pas plus que cela et échouer. –
On dirait que vous voulez juste supprimer des zéros en tête à moins qu'il n'y a qu'une seule gauche (« 0 » pour un entier ou « 0.xxx » pour un flotteur, où x peut être n'importe quoi).
Cela devrait être bon pour une première coupe:
while (s.charAt(0) == '0') { # Assume we remove all leading zeros
if (s.length == 1) { break }; # But not final one.
if (s.charAt(1) == '.') { break }; # Nor one followed by '.'
s = s.substr(1, s.length-1)
}
C'est une bonne solution. S'appuyer sur des fonctions intégrées n'est pas toujours la meilleure option. Je transformerais ceci en une fonction d'aide qui prend un argument de chaîne et retourne la chaîne mise en forme. –
Fonctionne très bien pour moi. Je conseillerais juste d'ajouter un morceau de code pour soutenir les nombres négatifs (avec "-" dans le premier caractère). – Gaston
solution simplifiée est comme ci-dessous. Regarde ça!
var resultString = document.getElementById("theTextBoxInQuestion")
.value
.replace(/^[0]+/g,"");
Vous pouvez utiliser ce code:
<script language="JavaScript" type="text/javascript">
<!--
function trimNumber(s) {
while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
return s;
}
var s1 = '00123';
var s2 = '000assa';
var s3 = 'assa34300';
var s4 = 'ssa';
var s5 = '121212000';
alert(s1 + '=' + trimNumber(s1));
alert(s2 + '=' + trimNumber(s2));
alert(s3 + '=' + trimNumber(s3));
alert(s4 + '=' + trimNumber(s4));
alert(s5 + '=' + trimNumber(s5));
// end hiding contents -->
</script>
str.replace(/^0+(?!\.|$)/, '')
'0000.00' --> '0.00'
'0.00' --> '0.00'
'00123.0' --> '123.0'
'0' --> '0'
Ok une solution simple. Le seul problème est quand la chaîne est "0000.00" résultat dans la plaine 0. Mais à côté de cela, je pense que c'est une solution cool.
var i = "0000.12";
var integer = i*1; //here's is the trick...
console.log(i); //0000.12
console.log(integer);//0.12
Pour certains cas, je pense que cela peut fonctionner ...
- 1. comment tronquer le texte HTML codé sans tronquer les caractères codés en utilisant javascript
- 2. xsl tronquer une décimale
- 3. Comment tronquer facilement un tableau avec JavaScript?
- 4. Regex pour enlever zéros
- 5. Python - MYSQL - Sélection des zéros en tête
- 6. Tronquer chaîne sur la limite de mot la plus proche
- 7. Tronquer les appels à la méthode
- 8. automatiquement tronquer les chaînes dans NHibernate/SQL Server
- 9. Tronquer efficacement les objets Ruby Time
- 10. Comment tronquer et réduire les fichiers journaux?
- 11. Comment tronquer un fichier en C?
- 12. Passer une chaîne par référence en Javascript
- 13. Fonction inet_addr et principaux zéros
- 14. comment enlever « » d'une chaîne en javascript
- 15. Comment analyser une chaîne en JavaScript?
- 16. Fractionner une chaîne en ASP Javascript
- 17. Comment puis-je générer des zéros en tête dans Ruby?
- 18. Validation de chaîne Javascript
- 19. Comment incrémenter une valeur avec des zéros en tête?
- 20. En tête des zéros sur le plugin JQuery Countdown Clock
- 21. mysql Tronquer table vs supprimer
- 22. Ruby on Rails - paramètre tronquer
- 23. Chaîne exacte avec JavaScript
- 24. numéros, à l'exclusion des zéros de fin
- 25. PHP: texte tronquer aux limites de mot
- 26. C# - Tronquer après une position
- 27. script shell pour tronquer toutes les tables MySql
- 28. VBA Trim() tronquer le texte bizarrement!
- 29. Comment tronquer la matrice en utilisant NumPy (Python)
- 30. Tronquer la chaîne de requête et renvoyer l'URL propre C# ASP.net
besoin de clarifier ce qu'est une « chaîne » est. Si votre "chaîne" est un nombre décimal, alors la réponse sera différente que si votre "chaîne" est une chaîne de texte. "00000.000" -> "0.000" serait une conversion décimale. "000TXT10001" -> "0TXT10001" nécessiterait une fonction de rognage. Par exemple, qu'attendez-vous lorsque l'entrée est "0011.1100" -> "011.1100" ou "11.11"? – ChronoFish