Как извлечь определенные c части аргумента и поместить их в собственную переменную - PullRequest
0 голосов
/ 25 января 2020

Итак, я пытаюсь получить имя и идентификатор смайлика в разногласии (разногласия. js) из аргумента, но не знаю, как это сделать

Все, что мне дали is <: hack_wump: 670702611627769876> и мне нужно var id = '670702611627769876' и var name = 'hack_wump' .

Как именно убрать аргумент <::> и поместить извлеченные части в их собственную переменную?

Ответы [ 4 ]

2 голосов
/ 26 января 2020

Вы можете сделать что-то вроде этого:

const str = `<:hack_wump:670702611627769876>`;
const [name, id] = str.slice(2, -1).split(':');
console.log(name, id);
1 голос
/ 26 января 2020

Вы также можете использовать match , чтобы получить последовательности символов, которые не являются частью разметки. Например,

let s = '<:hack_wump:670702611627769876>';
let [name, id] = s.match(/[^<:>]+/g);

console.log(`name: ${name}, id: ${id}`);
1 голос
/ 26 января 2020

Вы можете использовать регулярное выражение, /<:([^:]+):([^>]+)>/, для группировки и сопоставления ваших переменных.

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

match будет тогда массивом с 3 элементами:

  • match [0 ] = "<: hack_wump: 670702611627769876>"
  • match [1] = "hack_wump"
  • match [2] = "670702611627769876"

Для получения дополнительных регулярных выражений подробности см. на: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

1 голос
/ 26 января 2020

Вы должны быть в состоянии сделать это так:

.replace(), чтобы удалить < и >

.split() , чтобы разбить на массив строк

Наконец, используя Разрушение , чтобы назначить нужные переменные

let args = '<:hack_wump:670702611627769876>';

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

console.log(name);
console.log(id);
...