我有ZIP的输入字段,当用户填写字段时我想创建两个变量与第一个地面值。创建输入字段的数字范围
例如:
用户类型:01250, 我需要值01000两个变量和02000
var zip = $('.js-zip-input').val();
var inputZip = zip % 1000;
var zipMax = zip - inputZip + 1000;
var zipMin = zip - inputZip;
这对值工作时,第一个字符不为0
我有ZIP的输入字段,当用户填写字段时我想创建两个变量与第一个地面值。创建输入字段的数字范围
例如:
用户类型:01250, 我需要值01000两个变量和02000
var zip = $('.js-zip-input').val();
var inputZip = zip % 1000;
var zipMax = zip - inputZip + 1000;
var zipMin = zip - inputZip;
这对值工作时,第一个字符不为0
它的“不工作',因为这些是数字,并且它没有意义有一个数字01000.这实际上只有1000.如果你真的需要有零,你将不得不把你的值变成字符串,并添加0到开始其中。
这是你想要的吗?
var zip = 1250;
var range = 1000;
var zipMin = Math.floor(zip/range) * range;
var zipMax = zipMin + range;
上面的代码获取zip输入的底板值。 您可以将范围值设置为两个输出的差值:在您的情况下,1000到2000的范围为1000.请尝试一下。
正如gavin指出的那样,除非将它们转换为字符串,否则在输出之前不能有一个前导0。在这种情况下,您可以检查输出的长度(以字符串形式)并添加前导零。
var outputLength = 5;
var zipMinOutput = "0".repeat(outputLength - zipMin.toString().length) + zipMin;
var zipMaxOutput = "0".repeat(outputLength - zipMax.toString().length) + zipMax;
上面的代码添加尾随零的字符串中的每个字符丢失。
(function(){
var zip = '00000140050';
var zeros = leading_zero(zip.toString().split('').map(Number)); //Number of zeros can be appended to min max values
alert(zeros);
var inputZip = zip % 1000;
var zipMax = zip - inputZip + 1000;
var zipMin = zip - inputZip;
alert(zipMax + ', ' + zipMin);
function leading_zero(x)
{
var n = 0;
for (var i = 0; i < x.length; i ++) {
if (x[i] == 0) n++;
else
break;
}
return n;
}
}());
01250和1250不等于javascript中的数字。 –