Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2015, 15:08
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Разбираюсь с RegExp.
Всем привет, есть небольшая задача: распарсить строку такого вида:
' getDevice22 ( a , b, asd , j,i ) '

Пробелы естественно были проставлены умышленно дабы включить все возможные ситуации. Составил для этого регулярку:
var expr = ' getDevice22 ( a , b, asd , j,i ) ';
var reg = /^\s*\w+\s*[(]{1}\s*(\w+(\s*,{1}\s*\w+)*)*\s*[)]{1}\s*$/i;
alert(reg.test(expr));

Все работает, но вот вторая задача это вытащить массив аргументов(без пробелов естественно), так вот с регулярками я только знакомлюсь и пока не хватает знаний с этим справиться, прошу помощи.
Начинал писать что-то вроде:
\w*(?=\s*[,]*\s*|\s*[)]{1})\gi

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

Последний раз редактировалось Tsamsiyu, 02.01.2015 в 16:03.
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2015, 15:33
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Проще всего в 2 прохода
expr=' getDevice22 ( a , b, asd , j,i ) '
alert(expr.match(/\(.*\)/g)[0].match(/\w+/g))

Последний раз редактировалось krutoy, 02.01.2015 в 16:39.
Ответить с цитированием
  #3 (permalink)  
Старый 02.01.2015, 15:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var str =' getDevice22 ( a , b, asd , j,i) ';
str = str.replace(/\s+/g,'');
var arg = str.replace(/.*?\((.+)\).*/,'$1'.split(','));
if(arg!=str) alert(arg);
else alert('Не найдено!')
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2015, 02:11
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Разбираюсь с RegExp.
Спасибо, я и сам разобрался и из ответов почерпнул кое-что новое.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После new RegExp null, а без new RegExp array kostyanet Общие вопросы Javascript 19 25.10.2014 12:53
Как опознать RegExp. Kolyaj Общие вопросы Javascript 25 04.07.2009 01:41
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
RegExp & Mozilla (быстродействие) tau Общие вопросы Javascript 9 24.11.2008 16:35
RegExp и unicode Yury900 Общие вопросы Javascript 7 13.05.2008 00:19