我注意到,如果我使用<input type="number" />
,则不会删除前导零。我还看到了很多关于如何保持领先零的讨论。
例如,“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+/,'');
尝试这个 :
<!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>
将step =“any”添加到输入标记中。如果这不适用于您的浏览器,请将类型更改为type =“tel”