【发布时间】:2019-04-02 23:33:03
【问题描述】:
我正在尝试通过 react-router-dom 的 NavLink 查询 MongoDB 中的集合以查找名称与字符串 prop 匹配的项目。通过 NavLink 的道具用连字符代替空格,但是某些名称中带有连字符以及空格。这导致未找到错误,因为我当前的正则表达式用空格替换了所有连字符。
在前端,我使用的是 NavLink,因此我摆脱了空格以遵循 URL 最佳实践(一个 url 示例:example.com/this-persons-name),它将参数 this-persons-name 准确发送到我的数据库。
现在我正在使用以下内容:
db.collection('people').findOne({ name: {'$regex': req.params.person.replace(/-/g, ' '), $options: 'i'}})
问题在于,如果名称中已经包含连字符(例如:this-persons name),则无法找到此人,因为它会搜索 this persons name。
这应该适用于以下字符串:
thispersonsname
this-persons name
this-persons-name
this persons name
【问题讨论】:
-
为什么不在可能已经有一个连字符的地方放两个连字符?
-
代码现在替换所有实例 - 所以在这种情况下它会添加两个空格
标签: javascript regex reactjs mongodb express