【问题标题】:Split a string and keep the splitter拆分字符串并保留拆分器
【发布时间】:2020-09-13 18:12:44
【问题描述】:

我正在使用 Node.js 和 Discord.js 制作 Discord Bot,并且我正在尝试实现某种时间阅读器,当用户以这种格式发送内容 1h30m 时,我想操作一些计时器.我想将收到的字符串拆分为1h30m 以使用str.endsWith('') 操作它们。

let str = '1h30m';
if (!(/[^dhms0-9]/ig).test(str)) {
   console.log('RegExp Success.');
   duration = str.split(/[0-9]/);
   console.log(duration);
}

我做了一个条件,只有当它只有数字或字母“d”、“h”、“m”和“s”中的任何一个时才为真。它检测得很好,但是当我按数字拆分时,我得到以下数组:

[ '', 'h', '', 'm' ]

而我想要得到的是

['1h', '30m']

【问题讨论】:

  • 你能给我们一些规则吗,比如20h这样的2位数字,或者更多的3位?有没有可能像0h30min一样?是否有可能拥有1min 或者我们是否需要像01min 这样的零?
  • @VLAZ 具有教育意义,但实际上并不是 Wassim 遇到的问题

标签: javascript node.js string split discord.js


【解决方案1】:

您可以通过查找后跟hm 的数字来匹配这些部分。

let str = '1h30m',
    duration = str.match(/\d+[hm]/gi);
    
console.log(duration);

【讨论】:

  • 只需要sd
  • 在括号里加上d和s就可以了
  • 这正是我正在寻找的东西,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2022-11-03
  • 2022-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多