【问题标题】:Uppercase first letter in moment js时刻js中的大写第一个字母
【发布时间】:2020-11-11 16:45:42
【问题描述】:

有没有办法使用 moment js 将第一个字母变成大写?

Current output:

moment([20016, 0, 29]).fromNow(); // 4 years ago


Expected output:

moment([2016, 0, 29]).fromNow(); // 4 Years Ago

【问题讨论】:

  • 不是一个答案,因为 momentjs 可能有一个内置的方法来做到这一点——但npmjs.com/package/title-case 会满足你的需要吗?
  • 根据github.com/moment/moment/issues/5031 的说法,Moment js 的维护者之一说:“我认为 Moment.js 不应该关注大小写偏好。”所以使用刚刚提供的链接@TrentBing

标签: javascript reactjs momentjs


【解决方案1】:
  .capitalize {
   text-transform: capitalize;
  }

应用下面的类会给你想要的效果。

编辑:

如果你不喜欢 CSS,这里有几个不同的例子来说明如何使用 JS here

【讨论】:

    【解决方案2】:

    您可以使用String.prototype.replace()regex 来实现:

    console.log(moment([2016, 0, 29]).fromNow().replace(/\b[a-z]/, match => match.toUpperCase()));
    <script src="https://momentjs.com/downloads/moment.js"></script>

    String.prototype.replace() 还获取一个函数作为第二个参数:

    要调用的函数来创建新的子字符串,该子字符串用于将匹配项替换为给定的正则表达式或子字符串。

    String.prototype.replace()

    【讨论】:

      【解决方案3】:

      这是另一种方式。

      console.log(moment([2016, 0, 29]).fromNow().split(' ').map(word => word[0].toUpperCase() + word.slice(1)).join(' '));
      <script src="https://momentjs.com/downloads/moment.js"></script>

      【讨论】:

        猜你喜欢
        • 2018-07-08
        • 1970-01-01
        • 2013-09-01
        • 2011-09-29
        • 1970-01-01
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 2014-12-23
        相关资源
        最近更新 更多