是否有类似模板文字的东西反之亦然?

时间:2017-07-14 11:06:47

标签: javascript node.js npm ecmascript-6

使用模板文字很容易产生这样的东西:

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'}

无需复杂的用例或类型解析。

1 个答案:

答案 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()的结果是数组,第一个值是匹配的字符串。