Text Editing & Formatting

Extract URLs

Extract unique web URLs from selected text.

OfficialOn-device

Download action

What Extract URLs does

Finds HTTP, HTTPS, and www-style links, removes surrounding sentence punctuation, preserves balanced URL brackets, and returns one unique URL per line.

CategoryText Editing & Formatting
Action typeJavaScript
ResultCopy the result
InternetNot required

Action and outcome

Extract URLs example
ActionOutcome
Extract URLsSelected text: See https://example.com/docs, then https://actionclip.app.https://example.com/docs https://actionclip.app

Use Extract URLs

Follow these steps to extract unique web URLs from selected text with ActionClip.

  1. Select the text you want to use.
  2. Choose Extract URLs from ActionClip.
  3. Review the result, then copy it where you need it.

Requirements and privacy

  • Before you start: No setup required.
  • Your selected text: Runs locally in ActionClip’s JavaScript sandbox. Selected text does not leave your Mac.

Action configuration

The definition below is included so you can inspect how the action works before downloading it.

JavaScript definition
function run(selected_text) {
  const matches = selected_text.match(/\bhttps?:\/\/[^\s<>"']+|\bwww\.[^\s<>"']+/gi) || [];

  function trimTrailingPunctuation(value) {
    let result = value.replace(/[.,;:!?]+$/g, "");
    const pairs = [["(", ")"], ["[", "]"], ["{", "}"]];
    pairs.forEach(([opening, closing]) => {
      while (result.endsWith(closing)) {
        const opens = result.split(opening).length - 1;
        const closes = result.split(closing).length - 1;
        if (closes <= opens) break;
        result = result.slice(0, -1);
      }
    });
    return result;
  }

  const seen = new Set();
  const urls = [];
  matches.map(trimTrailingPunctuation).forEach((url) => {
    if (!seen.has(url)) {
      seen.add(url);
      urls.push(url);
    }
  });
  return urls.length ? urls.join("\n") : "No URLs found.";
}