Regex '\ s + - \ s * | \ s * - \ s +' does not work correctly

I am parsing a large list with node.js app and have this code

sizeCode = dbfr.CN_DESC.split('\s+-\s*|\s*-\s+')

      

it doesn't work as it returns

[ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - S' ]
[ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - M' ]
[ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - L' ]
[ 'WOMEN\ CC CROPPED TOP T-SHIRT - WHITE - S' ]
[ 'WOMEN\ CC CROPPED TOP T-SHIRT - WHITE - M' ]
[ 'WOMEN\ CC CROPPED TOP T-SHIRT -WHITE - L' ]
[ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST -WHITE - M' ]
[ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST - WHITE -L' ]

      

where as if i just used

sizeCode = dbfr.CN_DESC.split(' - ')

      

works correctly, the problem is that in some cases I may have a different position for the "-" character, for example:

[ 'WOMEN\ CC CROPPED TOP T-SHIRT -WHITE - L' ]
[ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST -WHITE - M' ]
[ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST - WHITE -L' ]

      

but I don't want to split the T-SHIRT for example.

any advice that is much appreciated

+3


source to share


1 answer


You must use regex separator in regex:

sizeCode = dbfr.CN_DESC.split(/\s+-\s*|\s*-\s+/g)

      



Demo version of RegEx

+1


source







All Articles