在正则表达式中使用OR使用JS replace()替换多个匹配项

时间:2018-06-27 00:25:55

标签: javascript regex replace

针对类似问题的其他一些答案提到仅使用|进行多次比赛,但对我来说似乎在JS中不起作用。

我有以下字符串:/hi_hawaii_zip_codes_geo.min.json,并且想要输出hawaii

以下代码不起作用:str.replace(/_z.*|^.{0,5}/, '')但是,在测试中regexpal.com上运行_z.*|^.{0,5}可以很好地匹配,并且我可以通过链接2 {{ 1}} s。

JS中的正则表达式是否有一些特殊的例外,或者是我所忽略的替代?

2 个答案:

答案 0 :(得分:2)

添加 global 标志:

str.replace(/_z.*|^.{0,5}/g, '')
            add “g” —————-^

答案 1 :(得分:1)

从这个问题尚不清楚,为什么根本需要使用replace。至少有两种其他方法可以从同一str获取“夏威夷”:

str.match(/_(.*?)_/)[1]

str.split('_')[1]