Skip to content Skip to sidebar Skip to footer

Extract Links In A String And Return An Array Of Objects

I receive a string from a server and this string contains text and links (mainly starting with http://, https:// and www., very rarely different but if they are different they don'

Solution 1:

One way to approach this would be with the use of regular expressions. Assuming whatever input, you can do something like

var expression = /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi;
 var matches = input.match(expression);

Then, you can iterate through the matches to discover there starting and ending points with the use of indexOf

for(matchin matches)
    {
        var result = {};
        result['link'] = matches[match];
        result['startsAt'] = input.indexOf(matches[match]);
        result['endsAt'] = 
            input.indexOf(matches[match]) + matches[match].length;
     }

Of course, you may have to tinker with the regular expression itself to suit your specific needs.

You can see the results logged by console in this fiddle

Post a Comment for "Extract Links In A String And Return An Array Of Objects"