私が<input type="number" />
を使用すると、先行ゼロが削除されないことに気付きました。 keeping先行ゼロの方法についても多くの議論がありました。
たとえば、「000023」と「23」は同じ数であり、それらのゼロを維持することは意味がないと思います。
このような正規表現を使用するだけです
textboxText= textboxText.replace(/^0+/, '')
リアクションの使用例を挙げます。フィールドの値を格納するstate
を使用します。しかし、私はそれをあなたが好きな変数に置き換えることができると思います。
<input type='number' value={Number(this.state.myNumber).toString()}/>
私の場合、myNumber
には年数が格納されます。このようにして、2018
の年(たとえば)が02018
として誤って表示されることがなくなります。
HTML入力タグは常に数値ではなくテキストを返します。その内容を数値形式、日付などに強制変換することもできます...
次に、その入力を実際の数値形式に変換する必要があります。
parseInt(myNum); // If you expect an integer.
parseFloat(myNum); // If you expect floating point number.
HTML5には<input type="tel">
この目的のために
これを試すことができます。
str1 = str.replace(/^0+/,'');
入力タグにstep = "any"を追加します。これがブラウザーで機能しない場合は、typeをtype = "tel"に変更します。
これを試して :
<!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>