|
|
|
| Помогите составить регулярку. В яваскрипте опыта мало. Нужно строку
42=1836.jpg=Samsung S5230 Star Black=S5230
превратить в
<div><p><a href='/shop/detail.php?item=42' onClick='detail(this.href); return false;'><img src='/small/img/shop/1836.jpg' alt='Samsung S5230 Star Black'></a></p>S5230 р.</div>
Делаю так:
var compact_text='42=1836.jpg=Samsung S5230 Star Black=S5230';
var re = /([^=])*=([^=])*=([^=])*=([^=])*/;
var string="<div><p><a href='/shop/detail.php?item=\0' onClick='detail(this.href); return false;'><img src='/small/img/shop/\1' alt='\2'></a></p>\3</div>";
alert(compact_text.replace(re,string));
|
алерт выдает:
<div><p><a href='/shop/detail.php?item=
Остальное теряется.
Как правильно сделать?
Суть страданий в том, чтобы получать от сервера компактный код и уже на стороне клиента превращать его в HTML | |
|
|
|
|
|
|
|
для: kosta_in_net
(04.03.2011 в 07:28)
| |
<script>
var dat = [42,"1836.jpg","Samsung S5230 Star Black","S5230"];
var string = "<div><p><a href='/shop/detail.php?item="+dat[0]+
"' onClick='detail(this.href); return false;'><img src='/small/img/shop/"+dat[1]+
"' alt='"+dat[2]+"'></a></p>"+dat[3]+"</div>";
alert(string)
</script>
|
| |
|
|
|
|
|
|
|
для: sim5
(04.03.2011 в 07:46)
| | ну, это-то понятно. Только хотелось бы не слать готовый массив. так как это то же немного лишних байт (за счет кавычек, например). | |
|
|
|
|
|
|
|
для: kosta_in_net
(04.03.2011 в 08:18)
| | Ага, а например ваши = это не лишние байты, да? Делайте что хотите.
Вы вместо разбиения строки на массив и его использование, запускаете довольно таки затратный механизм, для чего... | |
|
|
|
|
|
|
|
для: sim5
(04.03.2011 в 08:53)
| | чуть меньше лишних байт. А затратный механизм включался бы 1 раз на стороне клиента и нагрузки ему создать не успел бы.
Тут еще был спортивняй интерес - поработать с регулярками на яваскрипте. Ну да бог с ними. Как сделал, так сделал. А поэкспериментировав с регулярками и не добившись толку, сделал, как предложили вы. | |
|
|
|
|
|
|
|
для: kosta_in_net
(08.03.2011 в 08:13)
| | Да уж, по принципу - подумаешь, попыхтит, нихрена с ним не случится. ;-)
Если у вас запись одна, еще ладно, можно ее разбить в массив по разделителю, но если это несколько строк записей, то без объекта не обойтись. | |
|
|
|
|
|
|
|
для: sim5
(08.03.2011 в 11:08)
| | у меня получился многомерный массив. Хотел сделать одномерным, разбивая элементы регулярным выражением. Результат можно увидеть тут http://sex-toys.su/ "Недавно просмотренные Вами товары" (появляются после просмотра нескольких товаров). Код ничинается с
<script type='text/javascript'>divs=
Понимаю, что сексшоп может восприниматься неоднозначно. Но для меня это просто магазин, еще один сайт, который нужно было сделать. | |
|
|
|
|
|
|
|
для: kosta_in_net
(04.03.2011 в 07:28)
| | var compact_text='42=1836.jpg=Samsung S5230 Star Black=S5230';
var arr = compact_text.split('=');
var string="<div><p><a href='/shop/detail.php?item="+arr[0]+"' onClick='detail(this.href); return false;'><img src='/small/img/shop/"+arr[1]+"' alt='"+arr[2]+"'></a></p>"+arr[3]+"</div>"; | |
|
|
|
|
|
|
|
для: AlexSol
(04.03.2011 в 09:12)
| | советую использовать json | |
|
|
|
|
|
|
|
для: AlexSol
(04.03.2011 в 09:12)
| | сплит то же не совсем то. Ну да ладно, слелал готовым массивом, как предлагал сим5 | |
|
|
|