Javascript 处理特定的文本格式

Javascript handling specific text format

您好,我需要有关处理特定文本格式的帮助。

它应该是这样的

输入: !提示 10 个硬币

输出: !tip+number+string

我需要将此文本拆分为 3 个部分,首先是它的不可变字符串始终是 !tip,然后是数字和字符串。我需要得到任何号码。并串起任何字符串。任何人都可以帮助我。我尝试了很多东西,但没有任何帮助。 谢谢

您可能想要使用正则表达式,但您也可以迭代字符。

以下是您问题中具体案例的示例。但是,如果您要解析其他命令,您可能希望首先解析命令,然后以模块化方式解析参数。祝你好运!

function parseTip (input) {
  const groups = input.match(/^(?<command>!tip)\s+(?<amount>(?:\d+.)?\d+)\s+(?<type>.+)\s*$/iu)?.groups;
  if (!groups) {
    // you can throw an error here instead or handle invalid input however you'd like
    return undefined;
  }

  const {command, amount, type} = groups;
  return {
    command,
    amount: Number(amount),
    type,
  };
}

const inputs = [
  '!tip 10 coin',
  '!tip 3.5 coin',
  '!tip 400 giraffes',
  '!TIP 5 ideas',
  '!t 10 coin', // invalid
  '!tip two coin', // invalid
];

for (const input of inputs) {
  console.log(input, parseTip(input));
}