如何替换startsWith()函数的结果?

时间:2017-10-09 12:26:54

标签: javascript jquery regex replace ecmascript-6

这是我的代码?

var cookies = document.cookie.split(';').filter( (c) => c.startsWith('name'));
//=> [name_twitter=true, name_instagram=true]

虽然这是预期的结果:[twitter, instagram]。所以我需要在.replace()函数的末尾链接.startsWith()函数。像这样:

var cookies = document.cookie.split(';').filter( (c) => c.startsWith('name').replace(/.*_(.*)=true/, "$1"));

但它抛出:

  

未捕获的TypeError:c.startsWith(...)。replace不是函数

我该如何解决?

2 个答案:

答案 0 :(得分:0)

这里的问题是startsWith返回一个布尔值(truefalse)。并且替换在String上运行,因此您需要检查以下内容:

var cookies = document.cookie.split(';')
  .filter( (c) => c.startsWith('name') )
  .map( (c) => c.replace(/.*_(.*)=true/, "$1") );

答案 1 :(得分:0)

你可以做一个过滤器,然后是地图:

var cookies = document.cookie.split(';').filter(c => c.startsWith('name')).map(c => c.replace(/.*_(.*)=true/, "$1"));