Как получить функцию разделения javascript для извлечения нулевых значений из строки с разделителями

Я пытаюсь проанализировать строку с разделителями, используя функцию разделения javascript. Я использую разделитель из двух символов. Так, например. если строка содержит данные о сотрудниках со следующими полями:

  1. Идентификатор Emp (обязательно)

  2. Имя (обязательно)

  3. Возраст (необязательно)

  4. Мобильный № (необязательно)

и используется разделитель |* (т.е. вертикальная черта, за которой следует звездочка)

У меня могут быть такие данные

5322|*Mike|*21|*077665543

5323|*Jen|*|*077665543

5324|*Raj|*25|*

5325|*Alan|*|*

Как извлечь нулевые значения в массив, возвращаемый разделением?

Если я использую Record.split(/\|\*/), кажется, игнорируются нулевые значения. Нужно ли для этого использовать другие функции, такие как regex exec + substring? Функция разделения кажется довольно удобной, за исключением этого вопроса.


person vivekraman    schedule 22.02.2010    source источник
comment
+1 - Добро пожаловать в Stack Overflow.   -  person Andy E    schedule 22.02.2010


Ответы (2)


То, что вы делаете, правильно, и присутствуют нулевые значения.

>>> "5325|*Alan|*|*".split(/\|\*/)
["5325", "Alan", "", ""]
person kennytm    schedule 22.02.2010
comment
Действительно, если бы их там не было, они вернули бы значение undefined: "5325|*Alan|*|*".split(/\|\*/)[4]; // = undefined - +1. - person Andy E; 22.02.2010
comment
Спасибо за ответ. Я использовал Internet Explorer, и он не возвращал нулевых значений. Попробовал тот же код в Firefox, и это сработало. - person vivekraman; 22.02.2010
comment
Для справки, это ошибка (особенность?) Internet Explorer. NULL/пустые строки игнорируются в IE, но обнаруживаются в Firefox. Код на этой странице обеспечивает кросс-браузерную реализацию разделенного blog.stevenlevithan.com/archives. /кросс-браузерное разделение - person vivekraman; 24.02.2010

Не путайте null с пустой строкой. Ваше регулярное выражение правильно разбивает строку с разделителями, захватывая пустые строки, когда поля «пусты», как и должны. Если вам нужно, чтобы эти элементы массива были нулевыми, вам придется самостоятельно обработать возвращаемый массив.

person polygenelubricants    schedule 22.02.2010