Как написать регулярное выражение, которое будет возвращать строку?
Здравствуйте, подскажите пожалуйста.
Есть строки, которые могут быть ПРИМЕРНО следующего вида: ['ss_SS'] ['tt_AA'] ['gg_A'] ['ff'] ['gg_AZZ'] Символу внутри кавычек могут быть любые, это только, как пример скинул. Единственное, что их объединяет, так это - квадратные скобки и кавычки внутри скобок. Вопрос: подскажите пожалуйста, как написать 2 регулярки, которые будут возвращать: 1-я регулярка: символы до нижнего подчеркивание, то есть если есть строка ['ss_SS'] , то должна вернуть 'ss' или если строка ['ss'], то должна вернуть 'ss' 2-я регулярка: все символы, которые находятся в кавычках, то есть ['gg_AZZ'] - вернет 'gg_AZZ' Ломаю голову уже весь день... Спасибо |
var arr = []; var str = "['ss_SS'] ['tt_AA'] ['gg_A'] ['ff'] ['gg_AZZ']"; str.replace(/\[.+?\]/g, function (str) { arr.push(str.replace("[", "").replace("]", "")); return str }); alert(JSON.stringify(arr)); Вообще я с регулярками совсем не дружу, так что 100% есть решение лучше. Символы до нижнего подчеркивания я бы вообще через split забирал из массива, который получился. Хотя лучше написать нормальную регулярку. |
Цитата:
function replacer(str, p) { return p; } var reg = /\['([^_]+).*'\]/; console.log( "['ss_SS']".replace(reg, replacer) ); console.log( "['ss']".replace(reg, replacer) ); reg = /\[('.+')\]/; console.log( "['gg_AZZ']".replace(reg, replacer) ); |
Часовой пояс GMT +3, время: 19:34. |