Javascript 如何使用match和regex返回变量的内容?

Javascript 如何使用match和regex返回变量的内容?,javascript,node.js,regex,telegram,telegraf,Javascript,Node.js,Regex,Telegram,Telegraf,我希望能够使用正则表达式返回这些变量的内容 '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

我希望能够使用正则表达式返回这些变量的内容

'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"
})
但这只返回字符串,而不是变量的内容

您可以在这里使用
eval
,但我不建议这样做。相反,我建议您映射变量

const files = {
    "ar1" : fs.readFileSync('folder/ar1.txt').toString(),
    "ar2" : fs.readFileSync('folder/ar2.txt').toString(),
    "ar3" : fs.readFileSync('folder/ar3.txt').toString()
};
然后,您可以使用找到的字符串用对象键进行回复(这里也可以使用
Map


您是否尝试了
匹配[1]
app.hears(/\b(a+)r\d/i, (ctx) => {
    ctx.reply(files[ctx.match[0]]);
    //now returns the file
});