我怎样才能返回一个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 });