正则表达式:

"12 DOse Flaschentomaten".split(/(\d+(?:\s(?:Dose|TL|EL)){0,})\s+(.*)/gi)


在正则表达式工具(https://www.regex101.com/)中给我两组:

12 DOse
Flaschentomaten


这就是我想要的。

但是在javascript控制台中,此数组

["", "12 DOse", "Flaschentomaten", ""]


附带问题:
如果要对过滤词使用外部数组,则必须将其定义为字符串:
var filterWords =“ sp,ts,spoon”;
我是否可以仅在组中使用不区分大小写的i标记?

最佳答案

我想您要的是match,而不是split



m = "12 DOse Flaschentomaten".match(/(\d+(?:\s(?:Dose|TL|EL))?)\s+(.*)/i)
document.write("<pre>" + JSON.stringify(m,0,3));





添加m.shift()删除第一个元素(=整个匹配项)。

关于javascript - 某些字词或数字后的Javascript正则表达式拆分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29094910/

10-16 17:44