Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2015, 01:18
Аватар для blacklool
Аспирант
Отправить личное сообщение для blacklool Посмотреть профиль Найти все сообщения от blacklool
 
Регистрация: 16.01.2014
Сообщений: 50

Дело на 10$, нерешенный вопрос с регулярным выражением
Даже не знаю можно ли такое делать... но ладно тому кто первый мне поможет с решением задачи я по желанию переведу 10$ (могу только на paypal)

Ближе к делу,

мне нужно изменить скрипт marked.js, и поменять некоторые регулярные выражения.

Вот заготовка: здесь

Там везде где нужно будет вводить изменения, выделено большим комментарием. (поскольку так же обращусь за помощью в stackoverflow все комментарии на английском* )

и подробно о том что нужно:
(строка 448)
var inline = {
    // . . .

    //в marked по ум. чтобы добавить картинку нужно прописать ![](), и вот для этого оригинальное выражение:
    
    //link: /^\!?\[(inside)\]\(href\)/
    
    //а мне нужно чтобы было не ![]() а {>здесь номер<}![]()  и вот как я изменил:
    
    link: /^\{\>index<\)\}\!?\[(inside)\]\(href\)(\w*\S*)*/,
    
    //в конце добавил (\w*\S*)* чтобы для одной строки в редакторе возможно было добавить только 1 картинку

    //...
};
    
    //здесь мы дописываем регулярное выражение, это для того чтобы позже получить значение href, inside и index. вот первые две оригинальные:
    inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
    inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
    
    //inline._index = /(?:^\{\>[^\<\}]*\<\}|[^\{\>\<\}]|\<\}(?=[^\{\>]*\<\}))*/;  <-- это то что я пытался написать но не верно. . .
    //inline._index = /(?:^\{\>[^\<\}]*\<\}|[^\{\>\<\}]|\<\}(?=[^{]*\}))*/;


после того как мы собираем общую строчку регулярного выражения :

inline.link = replace(inline.link)
  ('inside', inline._inside)
  ('href', inline._href)
	('index', inline._index) //<----------------------------------------
  ();


нужно проверить пришедший текст с этой строчкой и получить значения href, inside и index ( строка 637 )

if (cap = this.rules.link.exec(src)) {
    src = src.substring(cap[0].length);
    this.inLink = true;
    out += this.outputLink(cap, {
    
    //index: cap [x] <---------------------

     href: cap[2],
     title: cap[3]
    });
    this.inLink = false;
    continue;
}


вот собственно и вся задача, получать inside, href, номер (индекс) с строки {>2<}![alt text](http://link.to/image.jpg)

и важно чтобы после работали обычные ссылки [текст](http://site.com)

Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2015, 02:24
Аватар для blacklool
Аспирант
Отправить личное сообщение для blacklool Посмотреть профиль Найти все сообщения от blacklool
 
Регистрация: 16.01.2014
Сообщений: 50

Вопрос решен! Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, с регулярным выражением. OctoberTide Общие вопросы Javascript 4 15.11.2012 11:36
Вопрос по регулярным выражениям demoniqus Общие вопросы Javascript 5 23.03.2011 09:06
Вопрос по регулярным выражениям JavaScript demoniqus Общие вопросы Javascript 5 01.12.2010 00:05
Вопрос по регулярным выражениям onejsquestion Общие вопросы Javascript 3 08.08.2010 17:34
Вопрос по регулярным выражениям demoniqus Общие вопросы Javascript 0 04.03.2009 11:08