1

我的问题与 JS 相关,而不是与 mapbox 相关。

我已经加载了几个具有不同日期的 geojson 标记Geojson格式为:

“2008 年 10 月 17 日星期五 01:00:00 GMT+02:00”

我想每年过滤一次标记。目前我只能过滤指定值,如return f.properties['LabelName'] === 'Rennes';

  • 我想过像这样玩正则表达式:
douze.onclick = function(e) {
    all.className = '';
    this.className = 'active';
    // The setFilter function takes a GeoJSON feature object
    // and returns true to show it or false to hide it.
    markerLayer.setFilter(function(f) {
        // First try wtih reGex on DateTime
          var stryear = f.properties['DateTime']; 
          var reg20 = /20\d*/g;
          console.log(stryear.match(reg20));
          return f.stryear.match(reg20) === '2012';
    });
    return false;
};

但它不起作用。正则表达式是否返回一个好的值?Mozilla 控制台对我没有帮助。

在此先感谢您的帮助

4

1 回答 1

0

我想你想要这个:

...
var reg20 = /20\d*/g;
console.log(stryear.match(reg20));
return f.stryear.match(reg20)[0] == '2012';

match()返回一个匹配数组,因此通过添加来访问第一个匹配项[0]
也用于==比较值,而不是===比较对象。

于 2013-09-06T02:54:20.753 回答