我正在使用正则表达式用于过滤的自动完成功能。该过滤器的代码目前是如下:正则表达式过滤器angular2
filterStates(val: string) {
return val ? this.states.filter(s => new RegExp(`^${val}`, 'gi').test(s.name))
: this.states;
}
}
以上regex
运行良好的数据结构,如:
states=[{"name":"Alaska",code:1234},
{"name":"Bulgaria",code:12345},
{"name":"Colarado",code:12346},
{"name":"New Jersey",code:12347},
]
继承人的工作plunker:https://plnkr.co/edit/Pf2pWeUYo2mt7VzwCDs2?p=preview
但现在人们在略有变化数据结构如下图所示name
:
states=[{"name":"Alaska (AL)","code":1234},
{"name":"Bulgaria (BG)","code":12345},
{"name":"Colarado (CO)","code":12346},
{"name":"New Jersey (NJ)","code":12347},
]
我无法弄清楚如何为name
生成regex
。当谈到正则表达式时,我是一个完整的noob。
任何帮助将不胜感激。
此模式不起作用。它阻碍了正常的字符搜索。 –
是否有必要使用REGEX?因为你可以简单地使用自定义管道进行操作。 –
@WiktorStribiżew是的,只是看到了。它不工作。 –