У меня есть выражение в виде строки. В этом выражении присутствуют скобки. Так вот, мне нужно чтобы содержимое этих скобок (с самими скобками) записалось в массив (br), после чего заменилось в исходной строке на [кое-какую другую строку]. Собственно так оно и происходит, НО... полученный массив содержит не стринги, а объекты! (так br[1].typeof() сказал)
Честно говоря я этого не ожидал...
Помогите разобраться: почему извлеченные по совпадению с регулярным выражением подстроки имеют такой статус? И как их преобразовать?
Весь код своей функции пока не выкладываю, т.к. по-моему этот вопрос возможно решить на уровне теории. На всякий случай вот несколько строк оттуда:
var bMask; bMask=/\([^\(\)]*\)/; // это само рег. выражение. ... br.push(bMask.exec(expression)); //найденное совпадение добавляется в массив expression=expression.replace(bMask, str); //оно же заменяется на [b]str[/b] ...
expression - это само выражение (строка).
Может где-то здесь проблема?
ЗЫ - Только недавно науячилсчя пользоваться RegExp... еле разобрался. Может я что-то упустил?
upd:
Новые подробности: оказывается RegExp.exec(string) возвращает МАССИВ строк... то есть br.push(bMask.exec(expression)); - это я добавляю массив в массив. Мне этого не надо, поэтому я push() заменяю на concat() (два массива объеденить), но это не решило проблемы, ибо он теперь вообще undefined стал
Подскажите, пожалуйста, в чем беда? Может было у кого такое...
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
_EAX_
Доброго времени суток!)
У меня есть выражение в виде строки. В этом выражении присутствуют скобки. Так вот, мне нужно чтобы содержимое этих скобок (с самими скобками) записалось в массив (br), после чего заменилось в исходной строке на [кое-какую другую строку]. Собственно так оно и происходит, НО... полученный массив содержит не стринги, а объекты! (так br[1].typeof() сказал)
Честно говоря я этого не ожидал...
Помогите разобраться: почему извлеченные по совпадению с регулярным выражением подстроки имеют такой статус? И как их преобразовать?
Весь код своей функции пока не выкладываю, т.к. по-моему этот вопрос возможно решить на уровне теории. На всякий случай вот несколько строк оттуда:
expression - это само выражение (строка).
Может где-то здесь проблема?
ЗЫ - Только недавно науячилсчя пользоваться RegExp... еле разобрался. Может я что-то упустил?
upd:
Новые подробности: оказывается RegExp.exec(string) возвращает МАССИВ строк... то есть br.push(bMask.exec(expression)); - это я добавляю массив в массив. Мне этого не надо, поэтому я push() заменяю на concat() (два массива объеденить), но это не решило проблемы, ибо он теперь вообще undefined стал
Подскажите, пожалуйста, в чем беда? Может было у кого такое...
Edited by _EAX_Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.