Go Back   CodingForums.com > :: Client side development > JavaScript programming > JavaScript frameworks

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 02-11-2013, 08:52 PM   PM User | #1
swiltch
New Coder

 
Join Date: Nov 2010
Posts: 51
Thanks: 8
Thanked 0 Times in 0 Posts
swiltch is an unknown quantity at this point
Detecting anchor tag on hyperlinks

Hey guys,

I'm currently using the following piece of script to add an anchor tag to URL's when they are fed into a page dynamically

Code:
jQuery.fn.mailto = function () {
  return this.each( function() {
    var re = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
    $(this).html( $(this).html().replace( re, '<a href="$1" target="_blank">$1</a>' ) );
    var re = /(([a-z0-9*._+]){1,}\@(([a-z0-9]+[\-]?){1,}[a-z0-9]+\.){1,}([a-z]{2,4}|museum)(?![\w\s?&.\/;#~%"=\-]*>))/g;
    $(this).html( $(this).html().replace( re, '<a href="mailto:$1">$1</a>' ) );
    var re = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
    $(this).html( $(this).html().replace( re, '$1<a href="http://$2" target="_blank">$2</a>' ) );
});
};
This works fine, BUT the problem I'm having is that some links that are being fed into the page are already active (have the anchor tag already attached to them). This code then adds another anchor tag, which causes problems on the page.

I'm looking for some help in modifying this code to detect that if a URL already has anchor tag then leave it alone, but if it doesn't then add it on so it becomes clickable. This code is adding the anchor tag to hyperlinks with the anchor already in place...

I think this should be quite simple with the use of an if statement but I can't get my head around it.

Any help is really appreciated!
swiltch is offline   Reply With Quote
Old 02-11-2013, 09:09 PM   PM User | #2
WolfShade
Regular Coder

 
Join Date: Apr 2012
Location: St. Louis, MO, USA
Posts: 941
Thanks: 7
Thanked 95 Times in 95 Posts
WolfShade is an unknown quantity at this point
str.indexOf("<a")

If the value is -1, the anchor tag is not there; if it is 0 or greater, it is.
__________________
^_^

If anyone knows of a website that can offer ColdFusion help that isn't controlled by neurotic, pedantic jerks* (stackoverflow.com), please PM me with a link.
*
The neurotic, pedantic jerks are not the owners; just the people who are in control of the "popularity contest".
WolfShade is offline   Reply With Quote
Old 02-11-2013, 11:41 PM   PM User | #3
rnd me
Senior Coder

 
rnd me's Avatar
 
Join Date: Jun 2007
Location: Urbana
Posts: 3,452
Thanks: 9
Thanked 466 Times in 450 Posts
rnd me is a jewel in the roughrnd me is a jewel in the roughrnd me is a jewel in the rough
Code:
return this.each( function() {
should be

Code:
return this.each( function() { if(this.tagName.toLowerCase()=="a"){return; }
__________________
my site (updated 5/13)
STATS (2013/5) HTML5:90.2% MOB:14% IE7:0.5% IE8:8.8% IE9:11.4% IE10:6.5%
rnd me is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:27 AM.


Advertisement
Log in to turn off these ads.