更改marked.js图像/链接表达式

时间:2015-04-05 12:01:01

标签: javascript regex markdown codemirror

我需要更改marked.js图片表达式。

原始表达式为:/^\!?\[(inside)\]\(href\)(\w*\S*)*/ ---> ![]()

我需要获取所有图像的id,所以我需要转换表达式以从中获取id值----&gt; {>"id"<}![inside](href)

我尝试将表达式更改为:/^\{\>index\>\}\!?\[(inside)\]\(href\)(\w*\S*)*/

在thar之后,我需要编写一个表达式来获取{>index<}![inside](href)

的“索引”值

内部和外部的例子HREF:

inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
inline._index = /(?:^\{\>[^\<\}]*\<\}|[^\{\>\<\}]|\<\}(?=[^\{\>]*\<\}))/; // I tryed this, but not works

//replacing

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

任何人都可以帮我构建这个表达式吗?

1 个答案:

答案 0 :(得分:1)

如果我做对了,你想从具有某种特定格式的链接中获取一些数据,例如{>"id"<}![inside](href)and_the_rest

因此,best regex I can suggest目前看起来像{>([^<]*)<}\!?\[([^]]+)\]\(([^)]*)\)(\w*\S*)*。它假设您在><内有“id”,“inside”位于[]内,而“href”位于(内且{ {1}}一个接一个。

)
function FindValues(str) {
  var re = /\{\>([^<]*)\<\}\!?\[([^\]]+)\]\(([^\)]*)\)(\w*\S*)*/; 
  var m;

  if ((m = re.exec(str)) !== null) 
  {
     return [m[1], m[2], m[3], m[4]];  
  }
}
  
var vls = FindValues('{>"id"<}![inside](href)and_the_rest');
document.getElementById('id').innerHTML = "ID: " +vls[0] + "<br>INSIDE: " + vls[1] + "<br>HREF: " + vls[2] + "<br>REST: " + vls[3];