Строка в массив по регулярному выражению
Дорогие профи, помогите разобраться, никак не получается.
Дано строка: ":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. Какие ещё есть другие варинанты (кроссбраузерные), для решения данной задачи? |
чем match не устроил
var str = ":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:"; var reg = /(:\d+:)/g; var list = str.match(reg); alert(list); |
var str=":11: Привет, как дела? :02::05: Всё хорошо, пока! :21:Удачи... :14:" var arr = str.replace(/^:|:$/gim,'').split(/:+/); alert(arr.join(',\n')) |
Deff, спасибо! Именно то что нужно. Столько времени мучался, никак не выходило, надо было раньше спросить :)
В варианте у bes, выводились только цифры, мне нужно было с текстом... У меня тоже так получалось, текст пропадал... |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
не обязательно делать нечто вроде <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> чтобы собрать, по сути, текстовое сообщение |
Да нет, строка точно xml, просто я уже тут в примере только просто текстом написал, а так полученные данные приходя в виде:
Код:
<mesg num='' color='' from='' to=''>текст сообщения</mesg> |
Цитата:
<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> |
Часовой пояс GMT +3, время: 09:10. |