javascript - 在javascript中将字符串转换为数字时如何保留前导零

标签 javascript

如何将字符串转换为数字而不丢失尾随零

var string1 = '02';
Number(string1); // == 2 - Default output
Number(string1); // == 02 - My requirement

我想要这个的原因是:我将一个日期作为值传递给日期 HTML 元素。格式为 yyyy-MM-dd ,月份和日期格式为两位数,如果我将日期(在我的例子中为字符串)转换为数字,则前导零将被删除。

最佳答案

你不能。 Number 是一个Number,句点。您可以创建一个辅助对象来提供一个数字和一个数字 leftpad 方法供您使用。像这样的东西:

document.querySelector("button").addEventListener("click", setDateValueExample);
var num = XNumber(3);
var result = {
  el: document.querySelector("#result"),
  log(str) {
    this.el.textContent += str + '\n';
  }
}
// XNumber usage example
result.log('XNumber(54).lpad(1000000): ' + XNumber(54).lpad(1000000));

// Datefield value from date field formatting example
var d = new Date(document.querySelector("#somedate").value);
result.log('Date formatted: ' +
  [XNumber(d.getMonth()+1).lpad(),
   XNumber(d.getDate()).lpad(),
   d.getFullYear()].join('-'));

// Set date field value from string example
function setDateValueExample() {
  document.querySelector("#somedate").value =
    document.querySelector("button").getAttribute("data-dateString")
      .split("/")
      .reverse()
      .map(function (v) {
        return XNumber(v).lpad()
      })
      .join('-');
}

// The actual Number helper
function XNumber(num) {
  return {
    num: +num,
    lpad (base) {
      base = base || 10;
      var  len = (String(base).length - String(this.num).length)+1;
      return len > 0 ? new Array(len).join('0')+this.num : this.num;
    }
  };
}
<input type="date" id="somedate" value="2017-02-01"/> a date
<button data-dateString="2/3/2017">Set value from string "2/3/2017"</button>
<pre id="result"></pre>

关于javascript - 在javascript中将字符串转换为数字时如何保留前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975680/

相关文章:

javascript - Laravel 5.3 包含 JS 插件,例如 jQuery

javascript - Bootstrap .tab ('show' ) 还扩展了 Group Button

javascript - 单击文本框字段并获取所选日期的值时,如何在 html 中显示日期元素?

javascript - 使用 JQuery 调用母版页 "CS"方法(ajax 不起作用)

javascript - 合并 2 个数组变化

javascript - 使用 JSDoc3 键入一个使用通用键的不可变对象(immutable对象)在 WebStorm 中没有得到很好的识别

javascript - 当用户滚动 jquery 时更改图像 src 值

javascript - 数据出现在网站上后禁用预加载器

javascript - 在 inview.js 触发时进行操作

php - 一起使用javascript和php来验证