web-dev-qa-db-fra.com

Supprimer les zéros non significatifs du type d'entrée = nombre

J'ai remarqué que si j'utilise <input type="number" /> les zéros non significatifs ne sont pas supprimés. J'ai également vu beaucoup de discussions sur la façon dont garder les zéros principaux.

Par exemple, "000023" et "23" sont le même nombre et je pense que cela n'a pas de sens de conserver ces zéros.

17

il suffit d'utiliser une expression régulière comme celle-ci

textboxText= textboxText.replace(/^0+/, '')
11
bhanu.cs

Je vais donner un exemple d'utilisation de React. Il utilise state qui stocke la valeur du champ. Mais, je pense que vous pouvez le remplacer par n'importe quelle variable que vous aimez.

<input type='number' value={Number(this.state.myNumber).toString()}/>

Dans mon cas, myNumber stocke un numéro d'année. De cette façon, l'année 2018 (par exemple) ne sera pas affiché par erreur comme 02018.

15
Moses Aprico

Les balises d'entrée HTML renvoient toujours du texte, pas des nombres, même son contenu peut être contraint au format numérique, aux dates, etc.

Ensuite, vous devez convertir cette entrée au format numérique réel:

parseInt(myNum); // If you expect an integer.
parseFloat(myNum); // If you expect floating point number.
3
bitifet

HTML5 a <input type="tel"> dans ce but

2
Vasyl Senko

Vous pouvez essayer ça.

    str1 = str.replace(/^0+/,'');
1
RJ Anoop

ajoutez step = "any" à votre balise de saisie. si cela ne fonctionne pas sur votre navigateur, changez le type en type = "tel"

0
Hyunsoo Kim

Essaye ça :

<!DOCTYPE html>
<html>
<body>

<input type="number" id="txtfield" /><button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    var myNumber = document.getElementById("txtfield").value;
    document.write(parseInt(myNumber ,10));
}
</script>

</body>
</html>
0
Parag Gawande