Помощь с регулярным выражением из |
Сделал как мог скрипт:
var r = '[a]urlAva[/a][n]FullName[/n][m]Message[/m]', i = r.split("[a]")[1].split("[/a]")[0], s = r.split("[n]")[1].split("[/n]")[0], o = r.split("[m]")[1].split("[/m]")[0]; alert(i + s + o); Но как то банально? Если будет у меня var r = 'urlAva|FullName|Message'; Какой регуляркой можно получить нужные мне данные? |
var str = []; '[a]urlAva[/a][n]FullName[/n][m]Message[/m]'.replace(/\[([^\]+])]([^\[\]]+)\[\/\1\]/g, function(a,b,c){ str.push(c); }); alert(str.join('|'))Но тут без вложенности. Если со вложенностью - придётся работать либо циклично либо рекурсивно и вручную. Во втором случае .split('|'), какие проблемы?) |
А если будет вот так: var text = 'urlAva|FullName|Message';
как получить данные с каждого | по отдельности? urlAva FullName Message Регуляркой не получится? |
kiberkun,
var text = 'urlAva|FullName|Message'; alert(text.split("|")) |
Ещё раз: зачем что-то городить?
alert( 'urlAva|FullName|Message'.split('|') )если очень хочется - нате вам с регулярной:) alert( 'urlAva|FullName|Message'.split(/\|/) ) Если же прямо таки вожделеете сделать через задницу, то можно и так: alert( 'urlAva|FullName|Message'.match(/[^|]+(?=\||$)/g) ) |
Цитата:
alert('urlAva|FullName|Message'.match(/[^|]+/g)) |
Pavel M., логично.)
|
Часовой пояс GMT +3, время: 03:32. |