есть строка вида: Код (Text): var string = " начало строки [tag=tagname1]text1[/tag]середина[tag=tagname2]text25text[/tag] конец" где tagname1 и tagname2 (ключи), а так же text1 и text2 (значения) - переменные чтобы точно было понятно что я хочу в результате, приведу код для наглядности, который вернет нужный мне результат Код (Text): result['tagname1'] = "text1"; result['tagname2'] = "text25text"; ну или так например Код (Text): result.tagname1 = "text1"; result.tagname2 = "text25text"; в дальнейшем я хочу использовать эти переменные для следующих условий: Код (Text): if(result['tagname1']!==NULL) { alert(result['tagname1']); } if(result['tagname2']!==NULL) { alert(result['tagname2']); } if(result['tagnameOTHER']!==NULL) { alert(result['tagnameOTHER']); } заранее спасибо все что смог - это сделать так: Код (Text): var g = '[tag]1[/tag][tag]2[/tag]'; var q = g.match(/\[tag\](\n|\r|.)*?\[\/tag\]/g); alert(q); дальше я могу вырезать из элементов полученного массива лишние теги но так я не знаю как их отличить друг от друга их может быть переменное количество а разные теги использовать не подходит возможно есть более грамотная альтернатива главное чтобы максимально коротко
как распарсить строку и получить содержимое тегов, в зависимости от атрибутов самого тега? не знаю как еще написать важное примечание - строка может содержать символы переноса строки. Код (Text): var string = " начало строки [tag=tagname1]text1[/tag] середина [tag=tagname2]text25text[/tag] конец ";
а, вы просто местный флудер, так бы сразу и сказали чтоб я зря время не тратил... пойду лучше читать дальше учебник javascript, спасибо за помощь
да вы что? а на invalid regular expression flag s invalid regular expression flag U просто не обращать внимание?
ой, точно, это ж не похапе. /s на то чтобы переводы строки канали в . и на нежадность придётся растыкать вопросиков по такому приниципу: .* - жадный .*? - нежадный.
Зачем делать так: Код (PHP): if(result['tagname2']!==NULL) Почему не определили переменную: window['result']=111; alert(result); window.result или var result? Как то оторвали, а саму задачу не написали... Что, на, что заменить нужно, в итоге, что должно получиться? Тут я сделал с функцией своей $.list Код (PHP): window['result']=[]; result['tagname1']='textTagName1'; result['tagname2']='textTagName2'; $.list('tag1,tag2',result); var str='',type=function(variable,type) { if('undefined'===typeof type) { return 'undefined'!==typeof variable; } else { return type===typeof variable; } }; tag1=type(tag1) && type(tag1,'string')?tag1:''; tag2=type(tag2) && type(tag1,'string')?tag2:''; if(tag1) { str+=tag1; } if(tag2) { str+=' - '+tag2; } alert(str); Вам же нужно сделать так: Код (PHP): window['result']=[]; result['tagname1']='textTagName1'; result['tagname2']='textTagName2'; var str='',type=function(variable,type) { if('undefined'===typeof type) { return 'undefined'!==typeof variable; } else { return type===typeof variable; } },tag1=result['tagname1'],tag2=result['tagname2']; tag1=type(tag1) && type(tag1,'string')?tag1:''; tag2=type(tag2) && type(tag2,'string')?tag2:''; if(tag1) { str+=tag1; } if(tag2) { str+=' - '+tag2; } alert(str); Объясните задачу подробнее...