Разбираюсь с 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 т.е. это выбор самих аргументов(которых может не быть), но я не знаю как начать этот выбор не с начала строки. |
Проще всего в 2 прохода
expr=' getDevice22 ( a , b, asd , j,i ) ' alert(expr.match(/\(.*\)/g)[0].match(/\w+/g)) |
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('Не найдено!') |
Разбираюсь с RegExp.
Спасибо, я и сам разобрался и из ответов почерпнул кое-что новое.
|
Часовой пояс GMT +3, время: 08:25. |