这超出了我的正则表达式体验,请帮忙。 -
我有点环顾四周,但找不到这样的例子。
我尝试通过JS匹配mongoDB中用户的小写名称,其中i,l和1之间可以互换任意数量的字符(eye,ell和one) 也在0和o之间(零和ohh)
示例:chris chr1s chrls将匹配
另外:joomla j00mla j0omla jo0mla将匹配。
和jimbo j1mb0 jlmbo jimb0将匹配等等
var name_lower = "jlmb0";
user_collection.findOne({name_lower : /?some regex?/name_lower}, function(err, doc) {
if(err) throw err;
if(doc) {
// a match
}
}
});
编辑: 假设lower_name已被解析为最小3个字符,最多20个字符,[a-zA-Z0-9],并且降低以防万一, 假设它是一个输入变量,所以我不知道用户名是什么。 我认为出于性能的考虑,假设只有1或2次出现的集[o,0]和[i,l]
假设我不知道在name_lower中输入了什么,是否会使mongoDB中的正则表达式无法实现?或许可以更容易地创建一组12个左右的可能名称并单独搜索它们,即编写一个检查两个集合并提供其他name_lower可能性的函数?