jQuery Simple Example

by Henry

HTML

<script src="//www.addressfinder.co.nz/assets/v2/widget.js"></script>
<label for="search_field">Address</label>
<input type='text' class='address_field' />
<div id="address">
  asdfbahsjb jsahbvhjasbdv sjahbdvjhsbvjhsdb dsjkbvjhdsbveihgv kldckner k. 892-352-5235 asdfbasbiasbb bdvjasbvhasbvnmbaidvbdasbisb jhsbvisbevjhdb jbsvksbdvbsjbvsdbszx qowudvsk 1-293-343-8294 asdb    askdbb  sdfbv dbsibfd dbdsbvdshb vsmd. akjnfdkasv lab lsdhf 7823958462 asdsdv.
</div>
<p>Book now, call <a href="tel:01234567890">01234 567 890</a></p>

CSS

body {
    padding: 5px;
}

label {
    font-weight: bold;
}

input[type=text] {
    width: 20em
}

p {
    margin: 1em 0 0;
}

JavaScript

$(document).ready(function() {
 //if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {

var countrycodes = "1"
var delimiters = "-|\\.|—|–|&nbsp;"
var phonedef = "\\+?(?:(?:(?:" + countrycodes + ")(?:\\s|" + delimiters + ")?)?\\(?[2-9]\\d{2}\\)?(?:\\s|" + delimiters + ")?[2-9]\\d{2}(?:" + delimiters + ")?[0-9a-z]{4})"
var spechars = new RegExp("([- \(\)\.:]|\\s|" + delimiters + ")","gi") //Special characters to be removed from the link
var phonereg = new RegExp("((^|[^0-9])(href=[\"']tel:)?((?:" + phonedef + ")[\"'][^>]*?>)?(" + phonedef + ")($|[^0-9]))","gi")

function ReplacePhoneNumbers(oldhtml) {
//Created by Jon Meck at LunaMetrics.com - Version 1.0
var newhtml = oldhtml.replace(/href=['"]callto:/gi,'href="tel:')
newhtml = newhtml.replace(phonereg, function ($0, $1, $2, $3, $4, $5, $6) {
    if ($3) return $1;
    else if ($4) return $2+$4+$5+$6;
    else return $2+"<a href='tel:"+$5.replace(spechars,"")+"'>"+$5+"</a>"+$6; }); 
return newhtml;
}

$("#address").html(ReplacePhoneNumbers($("#address").html()))

$("a[href^='tel:']").click(function(event){
     event.preventDefault(); 

     link  = $(this).attr('href');
     tracklink = link.replace("tel:","")
     tracklink = tracklink.replace(spechars,"")
     if(tracklink.length == 10) {tracklink = "1" + tracklink}

     ga('send', 'event', 'Contact', 'Phone', tracklink);
     //_gaq.push(['_trackEvent', 'Contact', 'Phone', tracklink]);

     setTimeout(function() {
        window.location = link;
     },300);
});
//}
});