Добавление дополнительных нулей перед числом с помощью jQuery?



У меня есть файл, который загружен, которые отформатированы так




г-1



г-2



100 г



200 г



300 г



ETC.




Что мне нужно сделать, это добавить дополнительные два 00s перед чем-либо перед MR 10 и добавить один дополнительный 0 перед MR10-99



Итак, файлы отформатированы




MR 001



г-010



MR 076



ETC.




любая помощь будет здорово!

334   12  

12 ответов:

предполагая, что у вас есть эти значения, хранящиеся в некоторых строках, попробуйте следующее:

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"

У меня есть потенциальное решение, которое я думаю уместна, я написал об этом здесь:

https://www.facebook.com/antimatterstudios/posts/10150752380719364

в принципе, вы хотите минимальную длину 2 или 3, Вы можете настроить, сколько 0 вы положили в этот кусок кода

var d = new Date();
var h = ("0"+d.getHours()).slice(-2);
var m = ("0"+d.getMinutes()).slice(-2);
var s = ("0"+d.getSeconds()).slice(-2);

Я знал, что всегда буду получать одно целое число как минимум (причина час 1, час 2) и т. д., Но если вы не можете быть уверены в получении чего-либо, кроме пустой строки, вы можете просто сделайте " 000 " +d.getHours (), чтобы убедиться, что вы получаете минимум.

тогда вы хотите 3 числа? просто используйте -3 вместо -2 в моем коде, я просто пишу это, потому что я хотел построить 24-часовые часы очень простым способом.

вот решение, которое мне понравилось за его простоту от ответ на аналогичный вопрос:

var n = 123

String('00000' + n).slice(-5); // returns 00123
('00000' + n).slice(-5);       // returns 00123
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"

это функция, которую я обычно использую в своем коде для добавления нулей к числу или строке.

входы-это строка или число (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 addZeros(n) {
  return (n < 10)? '00' + n : (n < 100)? '0' + n : '' + n;
}

таким образом, вы можете проверить длину строки, и если она меньше 6, разделить на пробел, добавить нули к числу, а затем соединить его вместе.

или как регулярное выражение:

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

Я уверен, что кто-то может сделать это с одной замены, а не две.

Edit-examples

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

он поставит один или два нуля перед числом на конец строки с пробелом перед ним. Его не волнует, какой бит перед пространством.

просто для смеха сделать это долгий неприятный путь....:
(Примечание: Я не использовал это, и я бы не советовал использовать это.!)

function pad(str, new_length) {
    ('00000000000000000000000000000000000000000000000000' + str).
    substr((50 + str.toString().length) - new_length, new_length)
}

Я сам нуждался в чем-то подобном на днях, пуд вместо того, чтобы всегда 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" будет больше одного символа случаи.

в простых терминах, мы можем записать следующим образом,

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

//потому что большую часть времени нам это нужно для дня, месяца или количества вопросов.

знаю, это старый пост, но вот еще один короткий, эффективный путь: zeros

edit: dur. если num не строка, вы бы добавили:

len -= String(num).length;

другое, это все хорошо

function addLeadingZeros(sNum, len) {
    len -= sNum.length;
    while (len--) sNum = '0' + sNum;
    return sNum;
}
var str = "43215"; 
console.log("Before : \n string :"+str+"\n Length :"+str.length);
var max = 9;
while(str.length < max ){
                                str = "0" + str;

                        }
console.log("After : \n string :"+str+"\n Length :"+str.length);

это сработало для меня ! Чтобы увеличить нули, обновите 'макс'

рабочая Скрипка URL:добавление дополнительных нулей перед числом с помощью jQuery?:

str может быть числом или строкой.

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

добавить больше нули если нужны большие цифры

Comments

    Ничего не найдено.