繁体   English   中英

如何提取参数的特定部分并将它们放入自己的变量中

[英]How do I extract specific parts of an argument and put them in their own variable

所以我试图从参数中获取 discord (discord.js) 中表情符号的名称和 ID,但不知道该怎么做

我得到的只是<:hack_wump:670702611627769876>并且我需要var id = '670702611627769876'var name = 'hack_wump'

我究竟如何去除 <::> 的参数并将提取的部分放入它们自己的变量中?

你可以这样做:

 const str = `<:hack_wump:670702611627769876>`; const [name, id] = str.slice(2, -1).split(':'); console.log(name, id);

你应该可以这样做:

.replace()删除<>

.split()拆分成一个字符串数组

最后,使用解构来分配你想要的变量

 let args = '<:hack_wump:670702611627769876>'; let [_, name, id] = args.replace(/<|>/g, '').split(':'); console.log(name); console.log(id);

您可以使用正则表达式/<:([^:]+):([^>]+)>/对变量进行分组和匹配。

var match = /<:([^:]+):([^>]+)>/.exec('<:hack_wump:670702611627769876>');

match 将是一个包含 3 个元素的数组:

  • match[0] = "<:hack_wump:670702611627769876>"
  • 匹配[1] =“hack_wump”
  • 匹配[2] = "670702611627769876"

更多正则表达式详情请参考: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

您还可以使用match来获取不属于标记的字符序列。 例如

 let s = '<:hack_wump:670702611627769876>'; let [name, id] = s.match(/[^<:>]+/g); console.log(`name: ${name}, id: ${id}`);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM