我正在从reddit json检索数据。一些数据是这样的:
The actual resolution of this image is 3067x2276, not 4381x3251. See [this](https://www.reddit.com/r/EarthPorn/wiki/index#wiki_resolution.3F_what_is_that_and_how_can_i_find_it.3F) page for information on how to find out what the resolution of an image is.
我想将数据插入页面上的<p></p>
中,但是链接位于上方(不可点击)。
当我尝试将其发布到stackoverflow时,请注意,它很好地重新格式化为可点击的链接。我该怎么办?
由stackoverflow重新格式化:
此图像的实际分辨率为3067x2276,而不是4381x3251。有关如何找出图像分辨率的信息,请参见this页。
我该如何实现?
答案 0 :(得分:1)
我觉得自己很受骗,但是在浏览器中检查OP时,我得到...
<p>The actual resolution of this image is 3067x2276, not 4381x3251. See <a href="https://www.reddit.com/r/EarthPorn/wiki/index#wiki_resolution.3F_what_is_that_and_how_can_i_find_it.3F" rel="nofollow noreferrer">this</a> page for information on how to find out what the resolution of an image is.</p>
换句话说,如果找到[words](URL)
,请替换为:
<a href="URL">words</a>
这个小小的正则表达式试图捕获[]后跟()的内容。根据您期望的链接类型,检查http可能不足...
let regex = /\[(.*?)\]\(([^\)]+)\)/g;
let matches = regex.exec(line);
// matches ought to contains words and a potential url
if (matches.length > 2 && matches[2].startsWith("http://")) {
// matches[2] is probably a url, so...
let replace = `<a href="${matches[2]}">${matches[1]}</a>`
// ...
}
答案 1 :(得分:1)
从正则表达式开始,基本上是类固醇上的通配符。
strides
在看起来很奇怪的同时会发现/\[.*\]\(.*\)/
,其中[*](*)
可以是任何长度的字符串。所有可以做的就是找到出现的第一个索引。我试着寻找,但我不是JS的最佳人选。
https://www.w3schools.com/js/js_regexp.asp