Lodash过滤器功能不适用于正则表达式

时间:2019-03-29 10:03:45

标签: javascript typescript lodash

我遇到一个问题,尝试使用_.filter方法减少(有效)ID列表。目的是根据每个字符串末尾给出的数字的最后一个值(string-string- [lastNumber + 1])创建一个新的id。

因为我不想收到无效的ID。我只是尝试在regexp方法内部使用_.filter过滤这些ID。

但是,结果看起来很奇怪。尽管这些字符串通过了regexp验证的在线测试。

REPL测试

var data = [ 
  'offstreetparking-estepona-1',
  'offstreetparking-estepona-2',
  'offstreetparking-estepona-3',
  'offstreetparking-estepona-04', // Should nor be included (not 04)
  'offstreetparking-estepona-4',
  'offstreetparking-estepona-5'
]

var patt = /([A-Za-z]+)-([A-Za-z]+)-([1-9]+)/g;

_.filter(data, d => patt.test(d));


// Result from lodash => [
"offstreetparking-estepona-1", 
"offstreetparking-estepona-3", 
"offstreetparking-estepona-4"
]

// Missing => 2 and 5 ids!

我不知道为什么某些有效的id未通过_.filter函数内部的测试,而是作为数组的元素返回。

所有这些都经过独立测试,可以正常工作:(

lodash的错误行为只会返回赔率值...

欢迎使用其他任何解决方案,但我想知道为什么lodash目前无法正常工作。

非常感谢!

0 个答案:

没有答案
相关问题