Как преобразовать ссылку в блоке копирования в HTML-ссылки - PullRequest
0 голосов
/ 17 октября 2019

У меня есть блок HTML-кода, который содержит около 156 ссылок на веб-сайты. Как мне преобразовать ссылку в HTML-ссылку?

https://siteA.com/xyA.
https://siteB.com/xyB.
https://siteC.com/xyC.
https://siteD.com/xyD.

Я хочу преобразовать эти ссылки выше:

<a href="https://siteA.com/xyA" target="_blank">https://siteA.com/xyA</a>
<a href="https://siteB.com/xyB" target="_blank">https://siteB.com/xyB</a>
<a href="https://siteC.com/xyC" target="_blank">https://siteC.com/xyC</a>
<a href="https://siteD.com/xyD" target="_blank">https://siteD.com/xyD</a>

Единственное общее в каждой из этих ссылок "https://" в начале и в конце". "Я надеялся, что когда придет сРешение, мы могли бы использовать их в качестве идентификатора.

fyi: я не играл с regex. Я использую Visual Studio Code и Notepad ++ в качестве моей IDE

Любые выводы приветствуются.

ТХ

Ответы [ 3 ]

0 голосов
/ 17 октября 2019

(https:\/\/.*?\..*?)\. следует заменить на <a href="$1" target="_blank">$1</a> любым используемым инструментом.

Объяснение:

https:\/\/ должно быть ясно, поскольку оно буквально!

.*?\..*?\. будет соответствовать вашему доменному имени и чему угодно до второго литерала .

Целое выражение будет помещено в круглые скобки, чтобы захватить доменное имя как группу и заменено во втором регулярном выражении.

0 голосов
/ 17 октября 2019

Я новичок в разработке, и это мой первый ответ. Я не понимаю, что вы подразумеваете под использованием "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>

Файл JavaScript разделяет содержимое блока кода, удаляет пробелы и все это, а затем создает нужные теги ссылок и отображает их обратно в файл HTML (я сделал это еще раз, чтобы показать, что код работает).

//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
*/

Надеюсь, это поможет!

0 голосов
/ 17 октября 2019

Если вы нажмете Ctrl+H в vscode, который откроет панель поиска и замены, введите (.*)\. в поле ввода поиска, включите переключатель регулярных выражений и введите <a href="$1" target="_blank">$1</a> в поле ввода замены. Должен быть в состоянии заменить их все сразу.

enter image description here

Регулярное выражение (.*)\. берет все в строке, заканчивающейся точкой, и помещаетURL (без точки) в группу захвата. В замене мы используем $1, чтобы вставить группу захвата обратно в текст замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...