2017-07-05 3 views
0

に変数を追加する:それはうまく働いているけど、私はそのように代わりにハードコードされた値のIEも少し動的にする必要がありJavascriptが私は活字体に次の関数書いた正規表現

public searchPosts(keyword ? : string): Post[] { 
    return this._posts.filter(function(post) { 
    if (post.title.search(new RegExp('money', 'gi')) >= 0) { 
     return post; 
    } 
    }); 
} 

を私のキーワード変数をRegExp(new RegExp(keyword, 'gi'))に入れることができます。しかし、そのようにしても、キーワードとして「お金」については何も返されません。

私がここで間違っていることに関するアイデアはありますか?

+0

'' gi''を 'keyword'に置き換えますか? ---うーん。 – evolutionxbox

+1

なぜあなたはフィルタに投稿を返信していますか?私はES6を使って動作させました '(keyword = '')=> this._posts.filter(post => post.title.search(new RegExp(keyword、 'gi'))> = 0)' – evolutionxbox

+0

作業。基準に一致する投稿を返信していますか? –

答えて

2

これは、それがこのdoesntの仕事、問題はどこか別の場所であればこれは純粋なJS

var posts = [{title: '1234'}, {title: '3456'}]; 
 

 
function searchPosts (keyword) { 
 
    return posts.filter(function(post) { 
 
    return (post.title.search(new RegExp(keyword, 'gi')) >= 0); 
 
    }); 
 
} 
 

 
console.log(searchPosts('345'));

で、あなたの関数である

var keyword = '345'; 
 
    var f = ['1234', '3456'].filter(function(post) { 
 
    return (post.search(new RegExp(keyword, 'gi')) >= 0); 
 
    }); 
 
    
 
    console.log(f);

に動作する方法であります;]。

+0

'' 'public searchPosts(keyword ?: string):Post [] {これを返すthis._posts.filter(function(post){ return(post.title.search(new RegExpキーワード、 'gi'))> = 0); }); } '' '私はここで何が欠けていますか? –

+0

'' 'public searchPosts(keyword ?: string):Post [] {return this._posts.filter(function(post){ return(post.title.search(new money)、 'gi') )> = 0); }); } '' 'これは私に望ましい結果をもたらしますが、検索文字列をキーワードに置き換えるとすぐには機能しません。キーワードのconsole.logも期待どおりです。 :/ –

+0

私は自分の答えを編集しました。あなたの機能はOKと思われます。あなたが関数に文字列を渡すときに私の答えで見ることができるように、それは望みの結果を返します。したがって、うまく働いています。それが私を助けることです。 Plunkerでコードを提供する場合は、もっと試してみてください。 –

関連する問題