Action

Extract email addresses

Posted by taglia, Last update 3 months ago

Creates a comma separated list from the email addresses in the selected text and stores it in the clipboard.

Steps

  • script

    // Cesare Tagliaferri 2022-04-11
    // Copy all email addresses as a comma separated list and load it into the clipboard
    
    // Email matching regex, credit to https://www.emailregex.com
    const regex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/g;
    
    let selection = editor.getSelectedText();
    let addresses = selection.match(regex);
    let output = addresses.join(', ');
    
    // Set Clipboard
    app.setClipboard(output);

Options

  • After Success Nothing
    Notification Info
    Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.