Let me explain with an example
var str = ' 1 ab 2 bc 4 dd'; //sample string
str.split(/\s+\d+\s+/)
result_1 = ["", "ab", "bc", "dd"] //regex not enclosed in parenthesis () will split string on the basis of match expression
str.split(/(\s+\d+\s+)/) //regex enclosed in parenthesis () along with above results, it also finds all matching strings
result_2 = ["", " 1 ", "ab", " 2 ", "bc", " 4 ", "dd"]
//here we received two type of results: result_1 (split of string based on regex) and those matching the regex itself
//Yours case is the second one
//enclose the desired regex in parenthesis
solution : str.split(/(\d+\.*\d+[^\D])/)
([a-z]+)?