我有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中的數字。 –