Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.04.2013, 13:14
Интересующийся
Отправить личное сообщение для sitesv Посмотреть профиль Найти все сообщения от sitesv
 
Регистрация: 08.04.2013
Сообщений: 23

Распарсить текст в массив
Добрый день!
Имеется строка, в которой находятся однобайтовые числа в HEX:
var data="000102030405060708090A0B0C";

Подскажите, как распарсить данную строку в следующий массив:

var data_new=array();
data_new[0]=00;
data_new[1]=01;
data_new[2]=02;
data_new[3]=03;
...
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2013, 13:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

var data="000102030405060708090A0B0C";
alert( 
    data.split(/(?=(?:..)+$)/) 
);
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2013, 13:40
Интересующийся
Отправить личное сообщение для sitesv Посмотреть профиль Найти все сообщения от sitesv
 
Регистрация: 08.04.2013
Сообщений: 23

Aetae, спасибо!!!!
Это регулярное выражение?
Я не могу понять как интерпретировать его.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2013, 13:45
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Интерпретируй его интерпретатором JavaScript.
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2013, 22:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,597

Сообщение от sitesv Посмотреть сообщение
Aetae, спасибо!!!!
Это регулярное выражение?
Да.
Сообщение от sitesv Посмотреть сообщение
Я не могу понять как интерпретировать его.
Такое часто бывает с регулярками.)

Тут особая хитрость. String.split разбивает строку на массив по другой строке либо регулярке.

x(?=y) - найти x, за которым следует y(но не включая его)
. - любой символ(кроме переносов строки)
(?:x) - незапоминающие скобки, нужные только для группирования.
+ - множитель: 1 или более раз.
$ - конец строки.

Поскольку перед (?=y) нет никакого x - x равен пустой строке: ''.

И того:
String.split(/(?=(?:..)+$)/)
Разбить строку по пустой строке, за которой повторяются один или более раз два любых символа до тех пор пока не упрутся в конец строки.
Соответственно сначала он находит
''(?=0102030405060708090A0B0C), потом ''(?=2030405060708090A0B0C) итд.
__________________
29375, 35

Последний раз редактировалось Aetae, 21.04.2013 в 22:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Отследить клик по дочернему объекту AllanZ jQuery 3 05.09.2012 12:38
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02