增加一个数字而不删除前导零jquery

时间:2015-04-09 07:55:21

标签: javascript jquery html

我从数据库中获取一个值,我将其重新用作数字,这个数字具有前导零,并且仅限于4位,这意味着格式为00010010或{ {1}}或0100我从零开始计数,当我将1添加到此数字时,前导零以我添加的方式消失为例

1000

4 个答案:

答案 0 :(得分:2)

数字没有前导零;那是一个字符串的东西。

如果您从数据库中获取的值是一个字符串,则需要执行以下操作:

  1. 获取其长度

  2. 使用parseInt(theString, 10)在基数10中进行解析(在某些引擎上,前导零使其认为应使用基数为8)

  3. 添加一个(从不需要对实际数字使用parseInt,因此它只是+ 1而不是+ parseInt(1)

  4. 将其转换为字符串

  5. 在循环中将字符串添加到字符串的开头,直到它与原始字符串一样长

  6. 没有内置的填充功能可以为你做#5,你要么必须写一个或做一个像theString = "00000000000000000000000".substr(theString.length - desiredLength) + theString这样的黑客(确保初始字符串有足够的零来覆盖你想要的东西)覆盖)。

答案 1 :(得分:2)

// I suppose databasevalue is a string
var databasevalue = "0125"; 

// coerce the previous variable as a number and add 1
var incrementvalue = (+databasevalue) + 1;

// insert leading zeroes with a negative slice
incrementvalue = ("0000" + incrementvalue).slice(-4); // -> result: "0126"

答案 2 :(得分:0)

这是您可以使用的功能。 min_size是字符串的长度,所以在你的情况下' 0000' min_size是4.您的数据库值从0开始。该函数将数字转换为字符串并检查字符串的长度。然后它添加前导零,直到达到min_size。 console.log显示以下第一个数字' 0001'。在这里,可以很容易地改变前导零的数量。

var min_size = 4;
var start_value = 0;

function leading_zero (num) {
    var new_num = num.toString();
    for (var i = new_num.length; i < min_size; i++) {
        new_num = '0' + new_num;
    }
    return new_num;
}

console.log(leading_zero(start_value + 1));

答案 3 :(得分:0)

我今天创建了一个可用于此的功能。

function incrementLeadingZeroNumber(leadingZeroString, amountToIncrement){
  var amountOfZerosToAdd = leadingZeroString.length;
  var stringToNumber = (+leadingZeroString);
  var zerosToAdd = new Array(amountOfZerosToAdd + 1).join( '0' );

  var zerosAndNewNumber = zerosToAdd + ( stringToNumber + amountToIncrement )
  var amountToSlice = (-1 * amountOfZerosToAdd)
  var newString = zerosAndNewNumber.slice(amountToSlice)
  return newString
}

//example usage
var incrementedNumber = incrementLeadingZeroNumber('0030', -10)