Javascript parse all links

PROWARE tech

This simple code will convert links contained in plain text to HTML anchors. This code should be run on the client side, freeing server resources.

function createAnchorHTML(link) < var a = document.createElement("a"); a.target = "_blank"; // NOTE: can remove or change the target here a.href = link; a.appendChild(document.createTextNode(link)); return a.outerHTML; >var text = "This is a link http://test.com that will be parsed. This is another link https://www.test.com/?q=query%201&p=0123456789 that will be parsed." var linkRegex = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|. ;]*[-A-Z0-9+&@#\/%=~_|])/gim; var html = text.replace(linkRegex, createAnchorHTML("$1")); console.log(html); alert(html); 

Enter text with Hyper-text Transfer Protocol (HTTP) or Hyper-text Transfer Protocol Secure (HTTPS) links to see how they are parsed:

node-js
three-js
tutorial
JavaScript: About
JavaScript: Add Line Numbers to Preformatted Text

Automatically add line numbers to the HTML PRE element.

JavaScript: AJAX Library

A simple AJAX library for FormData and REST API.

JavaScript: AJAX Library for React

A simple AJAX library compatible with React.

JavaScript: AJAX Tutorial

A quick guide to Asynchronous JavaScript And XML (AJAX).

JavaScript: Analog Clock

Scalable analog clock made with HTML, CSS and JavaScript — no images required.

JavaScript: Animate-on-Scroll

Apply a CSS class to an element when it is scrolled into view to cause it to animate.

JavaScript: Auto-hide Text Sections That Are Too Long

Use HTML, CSS and JavaScript to better format a page by hiding large sections of text with a fade to a «read more» link that the user can choose to expand the text with. This is often used on user submitted comments.

JavaScript: Browser Window Utility

Find the true browser window size even if it has a scrollbar displayed.

JavaScript: Browser/Client Detection

Detect the browser and client that the end user is using.

JavaScript: Check for Mobile Device

How to determine if the browser is on a mobile device like Apple iPhone, Apple iPod, Google Android or Apple iPad including the iPad Pro with iPadOS version 15.x and 16.x or later.

JavaScript: Classes

Several ways to create classes.

JavaScript: Contact Form Creation Example

How to create a contact form using JavaScript createElement and appendChild procedures.

JavaScript: Cookie Utility

A utility to create, access and delete cookies from the browser.

JavaScript: Copy Text to Clipboard

How to copy text to the clipboard with Chrome, Edge, Firefox and Internet Explorer.

JavaScript: Determine HTML Element Position

Determine where an HTML object is on the screen.

JavaScript: Determine If an Element Has a Class

Determine if an HTML element has a class assigned to it.

JavaScript: Download Images with Progress Indicator Bar

How to download images to the browser while showing the user a percent completion of the download while they wait.

JavaScript: ES5 Array Methods

All the EcmaScript 5 Array Method Functions.

JavaScript: Event Utility

A utility for handling events in the browser.

JavaScript: How to Create WordPress Slugs

Create slugs with only standard characters for use in a URL or other purpose.

JavaScript: IE11 Array.isArray() Method/Function

Create the Array.isArray() function for Internet Explorer 11.

JavaScript: IE11 Math.trunc() Method/Function

Create the Math.trunc() function for Internet Explorer 11.

JavaScript: IE11 String.endsWith() Prototype/Function

Create the String.endsWith() prototype for Internet Explorer 11.

JavaScript: IE11 String.padEnd() Prototype/Function

Create the String.padEnd() prototype for Internet Explorer 11.

JavaScript: IE11 String.padStart() Prototype/Function

Create the String.padStart() prototype for Internet Explorer 11.

JavaScript: IE11 String.repeat() Prototype/Function

Create the String.repeat() prototype for Internet Explorer 11.

JavaScript: IE11 String.startsWith() Prototype/Function

Create the String.startsWith() prototype for Internet Explorer 11.

JavaScript: IE11 String.trim() Prototype/Function

Create the String.trim() prototype for Internet Explorer 11.

JavaScript: Is a Number a Power of Two (2)

How to check or determine if a number has a base of 2 without using modulo operations for maximum performance.

JavaScript: Lazy Load Images

Lazy load images; also works to know if an element has scrolled into view.

JavaScript: Make a Scroll Tracker for a Website

Use JavaScript, CSS and HTML to make a bar move across the screen of a website page to show the user where they are scrolled to.

JavaScript: Parallax Effect

Shift on x-axis and y-axis (horizontal and vertical) parallax effect library.

JavaScript: Parse Internet Links in Plain Text

Use Regex to parse Internet links in plain text and convert to HTML anchor elements.

JavaScript: Position HTML Element

Position a Speech Bubble (DIV Element) with object.getBoundingClientRect().

JavaScript: React without JSX

Learn React without using the large JSX framework.

JavaScript: Remove SCRIPT Elements from HTML

Use regular expressions to remove SCRIPT elements from HTML text.

JavaScript: REST API Tutorial

Understand how the REST API works with examples.

JavaScript: Reveal and Hide Password in HTML Textbox

Show or hide the password in HTML textboxes.

JavaScript: Slide-on-Scroll

Add a sliding effect to the page as it is scrolled.

JavaScript: Stop Developer Tools and the Inspect Element Option

How to disable F12 and Ctrl+Shift+I for developer tools and the inspect element context menu option on all browsers.

JavaScript: Tips and Tricks

Useful tips and tricks for the budding JavaScript programmer.

JavaScript: URI/URL Parser

Parse a URI/URL location; separate the parameters, hashtag; automatically generate arrays for multiple valued parameters.

JavaScript: Validate Credit Card Number

Use the Luhn Check to validate credit card numbers.

JavaScript: Validate Email Address

How to validate email addresses by checking their format using client-side code.

JavaScript: Whole Website Example

An idea for a whole website using mostly HTML/CSS with just a little JavaScript.

Источник

Как разобрать URL в JavaScript?

Представляю Вашему вниманию перевод заметки «How to Parse URL in JavaScript: hostname, pathname, query, hash» автора Dmitri Pavlutin.

Унифицированный указатель ресурса или, сокращенно, URL — это ссылка на веб-ресурс (веб-страницу, изображение, файл). URL определяет местонахождения ресурса и способ его получения — протокол (http, ftp, mailto).

Например, вот URL данной статьи:

https://dmitripavlutin.com/parse-url-javascript 

Часто возникает необходимость получить определенные элементы URL. Это может быть название хоста (hostname, dmitripavlutin.com ) или путь (pathname, /parse-url-javascript ).

Удобным способом получить отдельные компоненты URL является конструктор URL() .

В этой статье мы поговорим о структуре и основных компонентах URL.

1. Структура URL

Изображение лучше тысячи слов. На представленном изображении Вы можете видеть основные компоненты URL:

2. Конструктор URL()

Конструктор URL() — это функция, позволяющая разбирать (парсить) компоненты URL:

const url = new URL(relativeOrAbsolute [, absoluteBase]) 

Аргумент relativeOrAbsolute может быть абсолютным или относительным URL. Если первый аргумент — относительная ссылка, то второй аргумент, absoluteBase , является обязательным и представляет собой абсолютный URL — основу для первого аргумента.

Например, инициализируем URL() с абсолютным URL:

const url = new URL('http://example.com/path/index.html') url.href // 'http://example.com/path/index.html' 

Теперь скомбинируем относительный и абсолютный URL:

const url = new URL('/path/index.html', 'http://example.com') url.href // 'http://example.com/path/index.html' 

Свойство href экземпляра URL() возвращает переданную URL-строку.

После создания экземпляра URL() , Вы можете получить доступ к компонентам URL. Для справки, вот интерфейс экземпляра URL() :

Здесь тип USVString означает, что JavaScript должен возвращать строку.

3. Строка запроса (query string)

Свойство url.search позволяет получить строку запроса URL, начинающуюся с префикса ? :

const url = new URL( 'http://example.com/path/index.html?message=hello&who=world' ) url.search // '?message=hello&who=world' 

Если строка запроса отсутствует, url.search возвращает пустую строку (»):

const url1 = new URL('http://example.com/path/index.html') const url2 = new URL('http://example.com/path/index.html?') url1.search // '' url2.search // '' 
3.1. Разбор (парсинг) строки запроса

Вместо получения исходной строки запроса, мы можем получать ее параметры.

Легкий способ это сделать предоставляет свойство url.searchParams . Значением данного свойства является экземпляр интерфейса URLSeachParams.

Объект URLSearchParams предоставляет множество методов для работы с параметрами строки запроса ( get(param), has(param) и т.д.).

Давайте рассмотрим пример:

const url = new Url( 'http://example.com/path/index.html?message=hello&who=world' ) url.searchParams.get('message') // 'hello' url.searchParams.get('missing') // null 

url.searchParams.get(‘message’) возвращает значение параметра message строки запроса.

Доступ к несуществующему параметру url.searchParams.get(‘missing’) возвращает null .

4. Название хоста (hostname)

Значением свойства url.hostname является название хоста URL:

const url = new URL('http://example.com/path/index.html') url.hostname // 'example.com' 

5. Путь (pathname)

Свойство url.pathname содержит путь URL:

const url = new URL('http://example.com/path/index.html?param=value') url.pathname // '/path/index.html' 

Если URL не имеет пути, url.pathname возвращает символ / :

const url = new URL('http://example.com/'); url.pathname; // '/' 

6. Хеш (hash)

Наконец, хеш может быть получен через свойство url.hash :

const url = new URL('http://example.com/path/index.html#bottom') url.hash // '#bottom' 

Если хеш отсутствует, url.hash возвращает пустую строку (»):

const url = new URL('http://example.com/path/index.html') url.hash // '' 

7. Проверка (валидация) URL

При вызове конструктора new URL() не только создается экземпляр, но также осуществляется проверка переданного URL. Если URL не является валидным, выбрасывается TypeError .

Например, http ://example.com не валидный URL, поскольку после http имеется пробел.

Попробуем использовать этот URL:

Поскольку ‘http ://example.com’ неправильный URL, как и ожидалось, new URL(‘http ://example.com’) выбрасывает TypeError .

8. Работа с URL

Такие свойства, как search, hostname, pathname, hash доступны для записи.

Например, давайте изменим название хоста существующего URL с red.com на blue.io :

const url = new URL('http://red.com/path/index.html') url.href // 'http://red.com/path/index.html' url.hostname = 'blue.io' url.href // 'http://blue.io/path/index.html' 

Свойства origin, searchParams доступны только для чтения.

9. Заключение

Конструктор URL() является очень удобным способом разбора (парсинга) и проверки (валидации) URL в JavaScript.

new URL(relativeOrAbsolute, [, absoluteBase] в качестве первого параметра принимает абсолютный или относительный URL. Если первый параметр является относительным URL, вторым параметром должен быть абсолютный URL — основа для первого аргумента.

После создания экземпляра URL() , Вы можете получить доступ к основным компонентам URL:

  • url.search — исходная строка запроса
  • url.searchParams — экземпляр URLSearchParams для получения параметров строки запроса
  • url.hostname — название хоста
  • url.pathname — путь
  • url.hash — значение хеша

Источник

Читайте также:  Closing http connection java
Оцените статью