Проблема в том, что вы разделяете на
(пробел) и /
, поэтому 123 / 15
становится:
[
'123',
// space
'',
// /
'',
// space
'15'
]
Если вы знаете, как должен выглядеть шаблон, вы можете использовать match
вместо разбиения:
value = "123 / 15 - Value1"
matchVal = value.match(/^(\d+)\s*\/\s*(\d+)\s*-\s*(.*)$/);
console.dir(matchVal)
С соответствием вы можете точно определить, как должен быть отформатирован ввод и какие поля ввода вы хотите извлечь.
Кроме того, он позволяет name
быть чем-то вроде Value-1 with spaces
, если это требуется, (если это не разрешено, вы можете изменить (.*)
на более ограничительное совпадение):
value = "123 / 15 - Value-1 with spaces"
matchVal = value.match(/^(\d+)\s*\/\s*(\d+)\s*-\s*(.*)$/);
console.dir(matchVal)
Использование regex101.com поможет вам понять, что делает earch часть регулярного выражения.