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

change marked.js image/link expression

本文关键字:链接 链接表 表达式 图像 js      更新时间:2023-09-26

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

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

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

我试图将表情更改为这样的内容:/^'{'>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)
();

任何人都可以帮助我构建此表达式吗?

如果我

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

因此,我目前可以建议的最佳正则表达式看起来像 {>([^<]*)<}'!?'[([^]]+)']'(([^)]*)')('w*'S*)* .它假设你在>里面有"id",<,"里面"在[]里面,"href"在(里面,一个接一个地)

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];
<div id='id'/>