operator - javascript語法




使用jQuery在數字前添加額外的零? (8)

str可以是數字或字符串。

formatting("hi",3);
function formatting(str,len)
{
   return ("000000"+str).slice(-len);
}

如果需要大數字,請添加更多

我有上傳的文件格式如此

MR 1

MR 2

MR 100

MR 200

MR 300

等等。

我需要做的是在MR 10之前添加額外的兩個00秒,並在MR10-99之前添加一個額外的0

所以文件格式化了

MR 001

MR 010

MR 076

等等。

任何幫助都會很棒!


假設您將這些值存儲在某些字符串中,請嘗試以下操作:

function pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

pad("3", 3);    // => "003"
pad("123", 3);  // => "123"
pad("1234", 3); // => "1234"

var test = "MR 2";
var parts = test.split(" ");
parts[1] = pad(parts[1], 3);
parts.join(" "); // => "MR 002"

如果拆分空間,可以使用以下簡單函數添加前導零:

function addZeros(n) {
  return (n < 10)? '00' + n : (n < 100)? '0' + n : '' + n;
}

因此,您可以測試字符串的長度,如果它小於6,則在空格上拆分,為數字添加零,然後將其重新連接在一起。

或者作為正則表達式:

function addZeros(s) {
  return s.replace(/ (\d$)/,' 00$1').replace(/ (\d\d)$/,' 0$1');
}

我敢肯定有人可以用一個替換而不是兩個替換。

編輯 - 示例

alert(addZeros('MR 3'));    // MR 003
alert(addZeros('MR 23'));   // MR 023
alert(addZeros('MR 123'));  // MR 123
alert(addZeros('foo bar 23'));  // foo bar 023

它會在字符串末尾放置一個或兩個零的數字,前面有一個空格。 它並不關心空間之前的位數。


我前幾天需要這樣的東西,Pud而不是總是0,我想能夠告訴它我想要填充前面的東西。 這是我為代碼提出的:

function lpad(n, e, d) {
  var o = ''; if(typeof(d) === 'undefined'){ d='0'; } if(typeof(e) === 'undefined'){ e=2; }
  if(n.length < e){ for(var r=0; r < e - n.length; r++){ o += d; } o += n; } else { o=n; }
  return o; }

其中n是你想要填充的東西,e是你想要填充的力量(它應該是多長的字符數),d是你想要填充的東西。 似乎可以很好地滿足我的需要,但如果“d”在某些情況下長度超過一個字符,則會失敗。


知道這是一個老帖子,但這是另一個簡短有效的方法:

編輯:dur。 如果num不是字符串,則添加:

len -= String(num).length;

否則,這一切都很好

function addLeadingZeros(sNum, len) {
    len -= sNum.length;
    while (len--) sNum = '0' + sNum;
    return sNum;
}

簡單來說,我們可以寫成如下,

for(var i=1;i<=31;i++)
    i=(i<10) ? '0'+i : i;

//因為大多數時候我們需要這一天,月份或數量都很重要。


這是我通常在我的代碼中使用的函數,用於將零添加到數字或字符串。

輸入是字符串或數字(str),以及所需的輸出長度(len)。

var PrependZeros = function (str, len) {
    if(typeof str === 'number' || Number(str)){
    str = str.toString();
    return (len - str.length > 0) ? new Array(len + 1 - str.length).join('0') + str: str;
}
else{
    for(var i = 0,spl = str.split(' '); i < spl.length; spl[i] = (Number(spl[i])&& spl[i].length < len)?PrependZeros(spl[i],len):spl[i],str = (i == spl.length -1)?spl.join(' '):str,i++);
    return str;
}

};

例子:

PrependZeros('MR 3',3);    // MR 003
PrependZeros('MR 23',3);   // MR 023
PrependZeros('MR 123',3);  // MR 123
PrependZeros('foo bar 23',3);  // foo bar 023

function addLeadingZeros (n, length)
{
    var str = (n > 0 ? n : -n) + "";
    var zeros = "";
    for (var i = length - str.length; i > 0; i--)
        zeros += "0";
    zeros += str;
    return n >= 0 ? zeros : "-" + zeros;
}

//addLeadingZeros (1, 3) =   "001"
//addLeadingZeros (12, 3) =  "012"
//addLeadingZeros (123, 3) = "123"




javascript