![](/img/trans.png)
[英]How can I count the number of digits of a number with leading zeros in javascript?
[英]how can I count number of digits with leading zeros in javascript?
我有一个表单,用户可以在其中输入一个数字,比如员工 ID 号或类似的东西。 该字段被设置为拒绝任何不是数字的东西,所以他们不能只是输入“bob”或faceroll键盘或其他任何东西。 否则我会将其转换为字符串。
我需要进一步验证并使此表单拒绝与正确位数不匹配的任何内容,例如 5。它还需要计算前导零。 例如 - 让我们假设员工 ID 为 01234,它应该匹配 5 位数字。 目前,我正在丢失前导零,并且它拒绝了上面示例中的值。
那么,我该如何:
您应该按照您的原始想法并为这样的字段使用字符串。 您可以使用简单的正则表达式检查字符串是否为数字,例如
let regex = /^[0-9]*$/;
regex.test(string);
如果字符串只包含数字,它应该返回 true。
如果您使用element.value
获取输入元素的值,它将返回一个保留前导零的字符串。
限制输入字段的字符包含在HTML 文本输入中,只允许数字输入
我复制并修改了下面的示例以显示一个输入字段,该字段最多只接受 8 个数字,并在提交时记录 ID。
// Restricts input for the given textbox to the given inputFilter. // Source: https://stackoverflow.com/a/469362 function setInputFilter(textbox, inputFilter) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) { textbox.addEventListener(event, function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } }); }); } const inputField = document.getElementById("employee-id"); const submitButton = document.getElementById("submit"); setInputFilter(inputField, function(value) { return /^\\d*$/.test(value) && (value.length <= 8);; }); submitButton.addEventListener('click', event => { console.log(inputField.value) })
User ID: <input id="employee-id"> <button id="submit">submit</button>
尝试这个。
<input id="number" type="text" minlength="5" maxlength="5" value="42" pattern="\d{5}">
通过 JS 检查有效性
document.querySelector('#number').checkValidity()
通过 CSS 检查有效性
input {
outline: none;
border: 1px solid green;
}
input:invalid {
border: 1px solid red;
}
如果您需要进一步验证,只需使用 javascript 来验证它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.