JavaScript string split by Regex results sub-strings include empty slices

后端 未结 2 727
悲哀的现实
悲哀的现实 2021-01-26 09:26

I\'ve the following string splitting JavaScript code:

var formula = \"(field1 + field2) * (field5 % field2) / field3\";
console.log(formula.split(/[+(-)% *\\/]/)         


        
2条回答
  •  离开以前
    2021-01-26 09:52

    Instead of splitting on /[+(-)% *\/]/ split on more than one: /[+(-)% *\/]+/. You still might get empty matches at the start and end. To solve that problem you can use a similar regex with replace:

    formula.replace(/^[+(-)% *\/]+|[+(-)% *\/]+$/g, "").split(/[+(-)% *\/]+/)
    

    So

    var formula = "(field1 + field2) * (field5 % field2) / field3";
    console.log(formula.replace(/^[+(-)% *\/]+|[+(-)% *\/]+$/g, "").split(/[+(-)% *\/]+/));
    

    yields

    field1,field2,field5,field2,field3
    

提交回复
热议问题