Javascript将变量添加到正则表达式

时间:2017-07-05 09:48:11

标签: javascript regex typescript

我在Typescript中编写了以下函数:

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'))中,而不是硬编码的值,即金钱。但这样做并不能归还任何东西,即使是“金钱”也是如此。作为关键字。

关于我在这里做错了什么的任何想法?

1 个答案:

答案 0 :(得分:2)

这是它应该如何运作

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

这是你在纯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'));

如果这不起作用,则问题出在其他地方;]。