#javascript #regex #node.js #mongodb #mongoose
#javascript #регулярное выражение #node.js #mongodb #мангуст
Вопрос:
У меня возникли проблемы с выполнением запроса $ regex с помощью Mongoose;
Следующее работает просто отлично:
Media.count(
{ "filename" :
{ $regex: /placeholder(-)?(w .)?.(w )?$/gm } },
function(err, res){
...
Следующее не работает:
var xp = new RegExp("placeholder(-)?(w .)?.(w )?$", "gm")
Media.count(
{ "filename" :
{ $regex: xp } },
function(err, res){
...
Я также попробовал следующее, которое тоже не работает:
var xp = new RegExp("placeholder(-)?(w .)?.(w )?$")
Media.count(
{ "filename" :
{ $regex: xp, $options: 'gm' } },
function(err, res){
...
По какой-то причине я чувствую, что Mongoose не принимает объекты регулярных выражений? Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно заменить ‘placeholder’ переменной, поэтому мне нужно использовать RegExp, чтобы это сделать…
У кого-нибудь раньше была такая проблема
Ответ №1:
Я только что узнал о своей ошибке, добавив ее сюда, если у кого-то еще есть такая же проблема:
При использовании нового регулярного выражения вам нужно убедиться, что вы избегаете обратной косой черты таким образом:
Правильный путь:
var xp = new RegExp("placeholder(-)?(\w .)?.(\w )?$")
Неправильный путь:
var xp = new RegExp("placeholder(-)?(w .)?.(w )?$")