Строка в массив по регулярному выражению
Дорогие профи, помогите разобраться, никак не получается.
Дано строка: ":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, время: 06:42. |