string模式到正则expression式

我正在使用mongodb来存储数据。 我想存储完整的正则expression式作为string:

{ permissions: [{ resName: '/user[1-5]/ig', isRegex: true }] } 

我知道有模块mongoose-regexp可以存储RegExp,但我想存储正则expression式和string在同一个字段。

我已经实现了使用eval(user.permissions[i].resName).test(resName) 。 我想知道这是否是正确的方法,如果有任何替代(即使用new RegExp(...)

编辑

我试图避免eval因为这个字段是来自用户input,如果有什么东西发送到数据库可能是一个问题。

这应该让你在那里

 const rxFinder = /^\/(.+)\/((g|i|m|u|y)*)$/ const resName = '/user[1-5]/ig' const resRx = new RegExp(...rxFinder.exec(resName).slice(1)) console.info(resRx) const testStrings = ['String for User5, eh', 'Bad User7 string'] testStrings.forEach(str => { console.info(JSON.stringify(str), 'is a match:', resRx.test(str)) })