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.
il suffit d'utiliser une expression régulière comme celle-ci
textboxText= textboxText.replace(/^0+/, '')
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
.
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.
HTML5 a <input type="tel">
dans ce but
Vous pouvez essayer ça.
str1 = str.replace(/^0+/,'');
ajoutez step = "any" à votre balise de saisie. si cela ne fonctionne pas sur votre navigateur, changez le type en type = "tel"
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>