2016-10-13 19 views
0

私はMongooseで$ regexクエリを作成する際に問題があります。

以下の作品だけで罰金:

Media.count(
    { "filename" : 
    { $regex: /placeholder(-)?(\w+.)?.(\w+)?$/gm } }, 
    function(err, res){ 
... 

次は動作しません:いくつかのために

var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$") 

Media.count(
    { "filename" : 
    { $regex: xp, $options: 'gm' } }, 
    function(err, res){ 
... 

var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$", "gm") 

Media.count(
    { "filename" : 
    { $regex: xp } }, 
    function(err, res){ 
... 

は、私もどちらか動作しませんので、以下を試してみましたなぜ私はMongooseがRegExpオブジェクトを受け取っていないと感じるのですか?私がいる問題は、それゆえ、私はこれを成し遂げるために正規表現を使用する必要がある、私は変数と「プレースホルダ」を交換する必要があるという事実である...

いずれも、これまで私が

答えて

0

前にその問題を持っていましたちょうど他の誰が同じ問題を抱えている場合はそれをここに追加して、私の誤りを知った:

新しい正規表現を使用している場合、あなたはバックスラッシュこのようエスケープすることを確認する必要があります。

正しい方法:

var xp = new RegExp("placeholder(-)?(\\w+.)?.(\\w+)?$") 

間違った方法:

var xp = new RegExp("placeholder(-)?(\w+.)?.(\w+)?$") 
関連する問題