Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2013, 21:55
Новичок на форуме
Отправить личное сообщение для Pegas12345 Посмотреть профиль Найти все сообщения от Pegas12345
 
Регистрация: 25.06.2013
Сообщений: 4

Строка в массив по регулярному выражению
Дорогие профи, помогите разобраться, никак не получается.

Дано строка:

":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:"

Нужно разделить строку на массив, чтобы получилось так:

arr[0]=":11:";
arr[1]="Привет, как дела?";
arr[2]=":02:";
arr[3]=":05:";
arr[4]="Всё хорошо, пока!";
...
arr[n]=":14:";

Чтобы потом каждый элемент массива уже обработать по своему. Заменить ":число:" на нужные смайлы с картинкой. В голову приходит только этот варинат:

str=":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:";
reg=/(:{1}\d{2}:{1})/gi;
list=str.split(reg);

Получаю массив, того что нужно, но это не работет в IE. Какие ещё есть другие варинанты (кроссбраузерные), для решения данной задачи?
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2013, 22:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

чем match не устроил
var str = ":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:";
var reg = /(:\d+:)/g;
var list = str.match(reg);
alert(list);
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2013, 22:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var str=":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:"
var arr = str.replace(/^:|:$/gim,'').split(/:+/);
alert(arr.join(',\n'))
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2013, 23:04
Новичок на форуме
Отправить личное сообщение для Pegas12345 Посмотреть профиль Найти все сообщения от Pegas12345
 
Регистрация: 25.06.2013
Сообщений: 4

Deff, спасибо! Именно то что нужно. Столько времени мучался, никак не выходило, надо было раньше спросить

В варианте у bes, выводились только цифры, мне нужно было с текстом... У меня тоже так получалось, текст пропадал...
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2013, 23:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Pegas12345
В варианте у bes, выводились только цифры, мне нужно было с текстом... У меня тоже так получалось, текст пропадал...
ты ж написал
Сообщение от Pegas12345
Чтобы потом каждый элемент массива уже обработать по своему. Заменить ":число:" на нужные смайлы с картинкой.
зачем тебе лишний текст, да и сам массив собственно
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2013, 11:54
Новичок на форуме
Отправить личное сообщение для Pegas12345 Посмотреть профиль Найти все сообщения от Pegas12345
 
Регистрация: 25.06.2013
Сообщений: 4

Цитата:
зачем тебе лишний текст, да и сам массив собственно
я получаю данные по ajax запросу в xml формате, и чтобы после вставить в окно чата сообщение, ДОМ, нужно создать элементы, текст или картинка. Вот и обхожу массив, и если картинка создаю объект картинка, если текст, то текст, а после встраиваится уже готовое сообщение в конец div-а.
Ответить с цитированием
  #7 (permalink)  
Старый 26.06.2013, 20:16
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Pegas12345
я получаю данные по ajax запросу в xml формате, и чтобы после вставить в окно чата сообщение, ДОМ, нужно создать элементы, текст или картинка. Вот и обхожу массив, и если картинка создаю объект картинка, если текст, то текст, а после встраиваится уже готовое сообщение в конец div-а.
приведи пример получаемого xml, так как ты привёл только строку, в которой хml и не пахнет
не обязательно делать нечто вроде
<script>
window.onload = function () {
	var img;
	document.body.appendChild(img = new Image(100, 100));
	img.src = "http://javascript.ru/forum/images/ca_serenity/misc/logo.gif";
	document.body.appendChild(img = new Image(100));
	img.src = "http://javascript.ru/forum/image.php?u=19820&dateline=1334914235";
}
</script>

чтобы собрать, по сути, текстовое сообщение
Ответить с цитированием
  #8 (permalink)  
Старый 27.06.2013, 16:56
Новичок на форуме
Отправить личное сообщение для Pegas12345 Посмотреть профиль Найти все сообщения от Pegas12345
 
Регистрация: 25.06.2013
Сообщений: 4

Да нет, строка точно xml, просто я уже тут в примере только просто текстом написал, а так полученные данные приходя в виде:
Код:
<mesg num='' color='' from='' to=''>текст сообщения</mesg>
вот "текст сообщения" и обрабатываю. Уже сделал, всё работатет Только IE замучал со своими заморочками...
Ответить с цитированием
  #9 (permalink)  
Старый 27.06.2013, 21:16
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Pegas12345
Да нет, строка точно xml,
ой не факт
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<mesg num='' color='' from='' to=''>текст сообщения</mesg>
<mesg num='' color='' from='' to=''>текст сообщения</mesg>
<button class="but">click</button>
<script>
jQuery(function ($) {
	$(".but").on("click", function () {
		alert($("mesg").text());
	});
});
</script>

Последний раз редактировалось bes, 27.06.2013 в 21:29.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получать вхождения при поиске по регулярному выражению nixml Общие вопросы Javascript 8 15.04.2013 19:51
строка, split = массив фонарик Общие вопросы Javascript 7 28.03.2013 06:48
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
Проверка строки на соответствие регулярному выражению Telnet Общие вопросы Javascript 9 17.07.2011 22:33
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14