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));
}
您好,我需要有关处理特定文本格式的帮助。
它应该是这样的
输入: !提示 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));
}