【发布时间】:2016-01-18 01:31:08
【问题描述】:
好的,我已经搜索了再搜索,但我无法找到一种方法来完成这项工作。这是我所拥有的:
我正在 node/express/socketio 等中开发一个聊天应用程序。我正在尝试创建一个“清除”函数,以根据指定的输入从 MongoDB 中删除某个聊天消息。例如:
/clear badword
/clear heck
/clear Barbara Streisand
我正在努力创建一个合适的正则表达式,它实际上会找到包含指定文本的条目。
这是我目前正在使用的:
Chat.remove({"msg":{$regex: new RegExp('.*' + myInput, 'i')}});
它似乎没有找到任何东西。注意:指定的文字可以在聊天消息中的任何位置,所以我需要能够说:
如果<this text> 存在于 msg 键中的任何位置,请将其删除。
我已经查看 RegEx 文档几个小时了,但我无法让它发挥作用。谁能指出我正确的方向?
【问题讨论】:
-
您是否尝试过在静态文本字符串而不是数据库上(通过您的代码)测试您的正则表达式,以确保您已正确构建它们并且它们正在工作?
-
@JohnnyHK -- 是的,我正在使用猫鼬
-
@Xotic750 我能够使用
db.messages.remove({"msg": /*sometext.*})从 mongo cli 成功地做到这一点——但是当我尝试在我的实际代码中使用它时出现“提供给 RegExp 构造函数的无效标志”错误.据我了解,我只能对那些使用 g,m,i ——但这不能正常工作。这就是我被困在这里的原因
标签: javascript regex node.js mongodb mongoose