I\'m currently using the following code, to search the a div on a page for URLs and replace them with a tags.
However when we have a embed tags within the div it me
Probably, you should use DOM as recommended. But in order to make your regexp work as desired, you should prepend it with (?:^|[^"'])
. That means match start of line or match any character excepting '
and "
. So first of your regexps will look as follows:
/(?:^|[^"'])(ftp|http|https|file):\/\/[\S]+(\b|$)/gim
And your chaining of replace
method is ugly. Code will be much more readable if you will split method invocations to different lines.
Update: And in order to skip first excess character you can use $1
instead of $&
and your regexp must be changed to this:
/(?:^|[^"'])((ftp|http|https|file):\/\/[\S]+(\b|$))/gim