Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/35521-regulyarnoe-vyrazhenie.html)

tsigel 13.02.2013 17:01

Регулярное выражение
 
Есть строка:

var text = "Неста-{bgColor='green'}{color='red'}П{b}л{/b}юс{/color}{/bgColor}-ЖД"


Необходимо заменить {bgColor='green'} {/bgColor} на "<span style='background-color: green'></span>" и т.п.

В регулярных выражениях я не силен :(

tsigel 13.02.2013 17:22

точнее не совсем так. Мне необходимо заменить эти вещи на теги, чтобы они работали как теги. Пока они выводятся текстом (так понимаю что надо пользоваться append(), и если да то надо разбить строку на массив со словами до и между тегами)

text = text.replace('{bgColor="', '<span style=\"').replace('}', '>').replace('{/bgColor}', '</span>')


Выводит "ОАО "Неста-<span style="green">{color="red"}П{b}л{/b}юс{/color}</span>-ЖД""

tsigel 13.02.2013 17:24

все, все придумал!

Если не лень напишите как это сделать с помощью регулярных выражений, я нашёл решение без них.

Большое спасибо!

Deff 13.02.2013 17:29

var str = "Неста-{bgColor='green'}{color='red'}П{b}л{/b}юс{/color}{/bgColor}-ЖД";

var a = "<span style='background-color:";
var b = "</span>";

var out = str.replace(/\{bgColor='([^\}]*)'\}([\s\S]*?)\{\/bgColor\}/gm,a+"$1"+";' >$2"+b)
alert(out)

tsigel 13.02.2013 17:51

Deff,
Большое спасибо!


Часовой пояс GMT +3, время: 03:42.