задавать описание каждой команды
const commands = [{
name: 'transfer',
value: /#перевести/i,
separator: / /,
params: ['name', 'count']
}, /* ... */];
и получать название и параметры команды в нормальном виде
const parse = (msg) => {
const command = commands.find((item) => (msg.match(item.value) || {}).index === 0);
if (!command) {
return null;
}
const args = msg.split(command.separator).slice(1);
return {
name: command.name,
params: command.params.reduce((acc, curr, i) => ({...acc, [curr]: args[i] || null}), {})
};
};
parse('#перевести Лёша 100');
/*
{
name: 'transfer',
params: {
name: 'Лёша',
count: '100'
}
}
*/