【发布时间】:2019-09-25 12:37:27
【问题描述】:
好的,我有一个问题,在我的数据库中,我存储了由 URL 生成的 regexPath。 我用这个包path-to-regex
所以我将转换后的正则表达式路径作为字符串存储在数据库中,如下所示:
let path = "/v1/manager/notification/all"
let regexPath = "/^\/v1\/manager\/notification\/all(?:\/)?$/i"
我需要 test() 函数来检查某些情况。 当然 test() 函数需要一个正则表达式格式来检查值是否存在于正则表达式中。我在互联网上找到的将字符串转换为正则表达式的唯一方法是:
let RegexPattern = new RegExp(regexPath)
但 RegExp 函数将我的 i 标记视为他自己的正则表达式的一部分,它返回如下内容:
/"\/^\\\/v1\\\/manager\\\/notification\\\/all\\\/page\\=([^\\=\\\/]+?)(?:\\\/)?$\/i"/
我应该如何解决这个问题?
【问题讨论】:
-
捕获并删除最后一个
/之后的最后一个值,然后将其传递给新的正则表达式,并将捕获的值作为标志传递,new RegExp(pattern, flag) -
您能否将正则表达式选项(示例中的最后一个“i”)存储为数据库中的另一列?
-
@AndrewMorton 是的,我可以,但我认为现在我可以在存储到数据库之前删除标签,就像代码狂人提到的那样。
标签: javascript node.js regex