使用模板文字很容易产生这样的东西:
const age = 22;
console.log(`Paul is ${age} years old.`)
// => Paul is 22 years old.
在从文本中解析信息时,我会问自己是否有任何可能性或包使用此原则,反之亦然。
可以是一个检索模板的函数和一个匹配的字符串,如下所示:
const template = `Paul is ${age} years old.`;
parseTemplate(template, 'Paul is 19 years old.');
// returns e.g. {age: '19'}
无需复杂的用例或类型解析。
答案 0 :(得分:1)
您可以使用destructuring from regex match
const [, age] = /^Paul is (\d+) years old.$/i.exec("Paul is 22 years old");
// age === "22"
请注意,解构模式[, age]
中的第一个元素为空。那是因为RegExp.prototype.exec()
的结果是数组,第一个值是匹配的字符串。