我的问题与JS有关,而不是与mapbox有关。
我已加载few geojson markers with different dates。 The Geojson格式为:
“Fri Oct 17 01:00:00 GMT + 02:00 2008”
我想每年过滤一次标记。目前我只能过滤指定的值,如 return f.properties ['LabelName'] ==='雷恩';
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控制台对我没有帮助。
提前感谢您的帮助
答案 0 :(得分:0)
我想你想要这个:
...
var reg20 = /20\d*/g;
console.log(stryear.match(reg20));
return f.stryear.match(reg20)[0] == '2012';
match()
会返回匹配的数组,因此请添加[0]
来访问第一个匹配项。
还可以使用==
来比较值,而不是比较对象的===
。