Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2014, 21:13
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Как написать регулярное выражение, которое будет возвращать строку?
Здравствуйте, подскажите пожалуйста.
Есть строки, которые могут быть ПРИМЕРНО следующего вида:
['ss_SS'] ['tt_AA'] ['gg_A'] ['ff'] ['gg_AZZ']

Символу внутри кавычек могут быть любые, это только, как пример скинул.
Единственное, что их объединяет, так это - квадратные скобки и кавычки внутри скобок.
Вопрос: подскажите пожалуйста, как написать 2 регулярки, которые будут возвращать:
1-я регулярка: символы до нижнего подчеркивание, то есть если есть строка ['ss_SS'] , то должна вернуть 'ss' или если строка ['ss'], то должна вернуть 'ss'
2-я регулярка: все символы, которые находятся в кавычках, то есть ['gg_AZZ'] - вернет 'gg_AZZ'
Ломаю голову уже весь день...
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 09.10.2014, 22:05
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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 забирал из массива, который получился. Хотя лучше написать нормальную регулярку.

Последний раз редактировалось tsigel, 09.10.2014 в 22:13.
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2014, 22:29
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Armen
Вопрос: подскажите пожалуйста, как написать 2 регулярки, которые будут возвращать:
1-я регулярка: символы до нижнего подчеркивание, то есть если есть строка ['ss_SS'] , то должна вернуть 'ss' или если строка ['ss'], то должна вернуть 'ss'
2-я регулярка: все символы, которые находятся в кавычках, то есть ['gg_AZZ'] - вернет 'gg_AZZ'
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) );
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как написать алгоритм выборки в javascript? Isaac Общие вопросы Javascript 13 06.02.2013 11:15
Как лучше написать скрипт теста Dimaz jQuery 2 28.11.2012 16:08
как правильно написать регулярное выражение? Lucius Общие вопросы Javascript 5 17.04.2011 16:34
Как обрезать строку и добавить символы в середине, в зависимости от длинны строки andreyua Firefox/Mozilla 12 10.12.2010 15:44