提前抱歉,如果之前有人问过这个问题,我环顾四周,找不到任何可以回答我的问题或对我有用的东西
在我的 HTML 网页上,我有一个现有脚本,可以从外部源导入和打印文本。该源代码是用 markdown 编写的,因此它非常块状地打印
[text](url)
,而不是功能性地显示 <a href="url">text</a>
我的目标是编写一个脚本,手动检测打印文本中的 Markdown URL 格式,并将其转换为功能性 HTML 格式,这样它就不再打印一长串文本并正确显示为超链接。该脚本应该在导入外部文本后运行,以便正确检测。 我承认我对javascript完全陌生,所以我根本不熟悉它,我无法在任何地方找到一个现有的脚本来完成我正在寻找的事情,所以我一直在尝试弗兰肯斯坦我自己的,但对我来说并没有成功。感谢您的耐心,如果有人愿意引导我了解它是如何工作的,我也将不胜感激!
我在 github 上发现了一个
现有代码,它宣称完全按照我的意愿行事。我想修改它以按类检测文本而不是精确文本,因为导入的文本是一个条件变量,根据外部源而变化。 我设法想出的是这个,但我再次重申,我对 javascript 一无所知,我只是根据外部示例来做相对相同的事情?
var prNs = document.getElementsByClassName('pk');
let elements = prNs.match(/\[.*?\)/g);
if( elements != null && elements.length > 0){
for(el of elements){
let txt = el.match(/\[(.*?)\]/)[1];//get only the txt
let url = el.match(/\((.*?)\)/)[1];//get only the link
prNs = prNs.replace(el,'<a href="'+url+'" target="_blank">'+txt+'</a>')
}
}
getElementsByClassName
0
查找markdown链接的正则表达式是/\[([^\]]+)\]\(([^)]+)\)/g
innerHTML
var elements = document.getElementsByClassName('pk');
for (let i = 0; i < elements.length; i++) {
let element = elements[i];
let content = element.innerHTML;
let markdownLinkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
// Replace all Markdown links with HTML links in the content
let updatedContent = content.replace(markdownLinkRegex, function(match, text, url) {
return '<a href="' + url + '" target="_blank">' + text + '</a>';
});
element.innerHTML = updatedContent;
}