我有一个前导零的数字说00000006906.我希望这个数字的数字为11.我试过
var num = 00000006906;
num.length// always outputs 4
和
num.toString().length// always outputs 4
长度但它总是以4返回,因为javascript总是将其视为6906.这个数字来自用户输入,我需要验证这一点。将此数字视为参考编号,并且始终预期其具有11位数的前导零。我想检查位数只是因为我想验证它是否满足所需的格式。感谢帮助。感谢。
答案 0 :(得分:1)
请将输入视为字符串,不要将其限制为整数,否则JavaScript将始终删除前导零。
答案 1 :(得分:0)
不是您的问题的答案,而是通过强制执行所需模式来解决问题的解决方案/解决方法。
const input = document.querySelector('input');
input.onfocus = function(){
input.selectionEnd = input.selectionStart = 11;
}
input.oninput = function(){
input.value = input.value.match(/^\s*0*(\d{0,11})/)[1].padStart(11, 0);
};
input:valid {
background-color: #CFC;
}
input:invalid {
background-color: #FCC;
color: red;
}
<label>
reference number:
<input value="00000000000" pattern="^\d{11}$" />
</label>