如何将复制块中的链接转换为html链接
我有一个HTML代码块,有大约156个网站链接。如何将链接转换为HTML链接如何将复制块中的链接转换为html链接,html,regex,hyperlink,Html,Regex,Hyperlink,我有一个HTML代码块,有大约156个网站链接。如何将链接转换为HTML链接 https://siteA.com/xyA. https://siteB.com/xyB. https://siteC.com/xyC. https://siteD.com/xyD.如果在将打开查找和替换面板的vscode中按Ctrl+H,请在查找输入中输入(.*)。,启用regex切换,然后在替换输入中输入。应该能够一次全部更换 (.*)\.regex接受以句点结尾的行上的任何内容,并将url(不带句点)放入捕获
https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.
https://siteD.com/xyD.
如果在将打开查找和替换面板的vscode中按Ctrl+H
,请在查找输入中输入(.*)。
,启用regex切换,然后在替换输入中输入
。应该能够一次全部更换
(.*)\.
regex接受以句点结尾的行上的任何内容,并将url(不带句点)放入捕获组。在替换中,我们使用$1
将捕获组插入到替换文本中。(https:\/\/.*?…*?)\。
应使用您使用的任何工具替换为
说明:
https:\/\/
应该是清晰的,因为它是文字
*?\…*?\。
将匹配您的域名和任何内容,直到第二个文本
整个表达式将放在括号中,以捕获作为一个组的域名,并替换为第二个正则表达式。我是新开发人员,这是我的第一个答案。我不明白您使用“https://”和“.”作为标识符是什么意思?所以我所做的基本上是假设您在.html页面的某个地方有一个代码块:
<code id="codeBlock">
https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.
https://siteD.com/xyD.
</code>
<div id="linkOutput"></div>
https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.
https://siteD.com/xyD.
JavaScript文件分割代码块的内容,删除空白和所有内容,然后创建所需的链接标记,并将它们显示回HTML文件(我这样做更多是为了表明代码工作正常)
//从HTML块获取数据
//过滤掉空白
var数据=[];
数据=文件
.getElementById(“代码块”)
.innerHTML.split(/\s+/)
.过滤器(e=>e.length>1);
对于(变量i=0;i
希望这有帮助 你用什么语言来做这件事?@Evert他用Visual Studio代码和记事本++来做这件事,如上所述!在通过脚本运行正则表达式时,我更相信的一点是,一些url中有多个句点。喜欢或者url中的peiords可以是1到4之间的任意位置。有两个脚本没有获取完整的url。这将失败,因为域名中有点@csabinho我只是在自己的机器上运行它,如果每个url都在自己的行上(如示例中所示),它绝对不会失败。我意识到它通过了,因为*
是贪婪的@csabinho是的,但是编辑器中简单字符串替换的性能不是很重要,所以在我看来保持它的简单更重要。当然,在必要的时候,prod中的一些内容不应该那么贪婪。将人们与过于复杂的regex
es混淆是没有意义的!原始海报正在寻找使用regex的解决方案,因为这可以在搜索中使用。@csabinho.In The find,piece“(https:\/\/.*?\…*?)\。它似乎可以找到url的所有引用,但当我将其替换为“”时,它不会显示提取的值。我只是照原样显示了相关的字符串。基本上相同的替换字符串
//get data from the HTML <code> block
//filter out whitespace
var data = [];
data = document
.getElementById("codeBlock")
.innerHTML.split(/\s+/)
.filter(e => e.length > 1);
for (var i = 0; i < data.length; i++) {
//create <a> tag and set attributes
var para = document.createElement("a");
para.setAttribute("href", data[i]);
para.setAttribute("target", "_blank");
var node = document.createTextNode(data[i]);
para.appendChild(node);
//append it to HTML front end
document.getElementById("linkOutput").appendChild(para);
}
/*
got some inspiration here:
https://blog.abelotech.com/posts/split-string-into-tokens-javascript/
https://www.w3schools.com/js/js_htmldom_nodes.asp
*/