繁体   English   中英

正则表达式的字符串模式

[英]String pattern to regex

我正在使用mongodb来存储数据。 我想将完整的正则表达式存储为字符串:

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

我知道有模块mongoose-regexp可以存储RegExp,但是我想将regex和字符串存储在同一字段中。

我已经使用eval(user.permissions[i].resName).test(resName)实现了它。 我想知道这是否正确,是否还有其他选择(即使用new RegExp(...)

编辑

我正在尝试避免eval因为该字段来自用户输入,如果向数据库发送了一些恶意事件,可能会成为问题。

这应该带你去

 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)) }) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM