我怎样才能返回一个variables的内容通过使用匹配和正则expression式?

我希望能够通过使用正则expression式返回这些variables的内容。

'use strict' const Telegraf = require('telegraf') const fs = require('fs') var ar1 = fs.readFileSync('folder/ar1.txt').toString() var ar2 = fs.readFileSync('folder/ar2.txt').toString() var ar3 = fs.readFileSync('folder/ar3.txt').toString() 

我试过使用:

 app.hears(/\bar\d/i, (ctx) => { ctx.reply(ctx.match[0]) //Returns: "ar1" }) 

但是这只返回string,而不是variables的内容。

可以在这里使用eval ,但我不build议这样做。 相反,我build议你映射你的variables。

 const files = { "ar1" : fs.readFileSync('folder/ar1.txt').toString(), "ar2" : fs.readFileSync('folder/ar2.txt').toString(), "ar3" : fs.readFileSync('folder/ar3.txt').toString() }; 

然后,你可以使用你find的string来回复你的对象键(一个Map也可以在这里使用)

 app.hears(/\b(a+)r\d/i, (ctx) => { ctx.reply(files[ctx.match[0]]); //now returns the file });