如何使用匹配和正则表达式 return 变量的内容?
How can I return the content of a variable by using match and regex?
我希望能够使用正则表达式return这些变量的内容。
'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"
})
但这只是return的字符串,不是变量的内容。
您可以在这里使用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
)
app.hears(/\b(a+)r\d/i, (ctx) => {
ctx.reply(files[ctx.match[0]]);
//now returns the file
});
我希望能够使用正则表达式return这些变量的内容。
'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"
})
但这只是return的字符串,不是变量的内容。
您可以在这里使用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
)
app.hears(/\b(a+)r\d/i, (ctx) => {
ctx.reply(files[ctx.match[0]]);
//now returns the file
});