Thank you so much for your help. Both have worked like a charm and I have been able to manipulate them for most of my needs.
I have one that the spacing is showing correctly in the validate but not in the preview. Can anyone spot what error I am making for this to not show correctly?
It should be two spaces between the telephone, fax and mobile like this:
T 000_000_0000 F 000_000_0000 M 000_000_0000
But it is showing instead like:
T 000_000_0000F 000_000_0000M 000_000_0000
Here is the code I am using:
var telField = Field("telephone"); // Replace with your field name
var faxField = Field("fax"); // Replace with your field name
var mobileField = Field("mobile"); // Replace with your field name
// Array of numbers and tags
var numbers = [["T ",telField],["F ",faxField],["M ",mobileField]];
// Remove elements that don't have a phone number from the array
numbers = numbers.filter(function(s){return s[1];});
// Add color tags, format numbers, & add space between labels/numbers
for (var i=0; i<numbers.length; i++){
numbers[i][0] = '<f name="Akzidenz-Grotesk Std Med">' + numbers[i][0] + '</f>';
numbers[i][1] = '<f name="Akzidenz-Grotesk Std Light">' + formatPhone(numbers[i][1]) + '</f>';
numbers[i] = numbers[i].join(" ");
}
// Join with 2 spaces
return numbers.join(" ");
//===============================================================
//
// DON'T EDIT BELOW THIS LINE
//
//===============================================================
function formatPhone(num){
var Var1 = num;
var formatStyle01 = "$1_$2"; //simple 7 digit phone
var formatStyle02 = "$1_$2_$3"; //simple 10 digit phone
var formatStyle03 = "+$1 $2_$3_$4"; //10 digit phone starts with 1
var formatStyle04 = "$1_$2_$3 ext.$4"; //10 digit phone with extension
var formatStyle05 = "+$1 $2_$3_$4 ext.$5"; //10 digit phone starts with 1 with extension
var formatStyle06 = "$1_$2 ext.$3"; //7 digit phone with extension
var thisNumber = Var1;
return formatNumber(Trim(thisNumber));
function formatNumber(number01){
var pattern01 = /^(\d{3})[^\d]*(\d{4})$/;
var pattern02 = /^[\D]*(\d{3})[\D]*(\d{3})[\D]*(\d{4})$/;
var pattern03 = /^\+?(\d{1})[\D]*(\d{3})[\D]*(\d{3})[\D]*(\d{4})$/;
var pattern04 = /^[\D]*(\d{3})[\D]*(\d{3})[\D]*(\d{4})\D*[x#n]\D*(\d+)$/;
var pattern05 = /^\+?(\d{1})[\D]*(\d{3})[\D]*(\d{3})[\D]*(\d{4})\D*[x#n]\D*(\d+)$/;
var pattern06 = /^(\d{3})[\D]*(\d{4})\D*[x#n]\D*(\d+)$/;
var patternEndExt = /(.)[x#n](.)/;
var patternStart1 = /^[\D]*[1]/;
if(number01.match(pattern01)){
number01 = number01.replace(pattern01, formatStyle01);
return number01;
} else if(number01.match(pattern02)){
number01 = number01.replace(pattern02, formatStyle02);
return number01;
} else if(number01.match(pattern03)){
if (number01.match(patternStart1)){
number01 = number01.replace(pattern03, formatStyle03);
return number01;
} else {
return number01;
}
} else if(number01.match(pattern04)){
number01 = number01.replace(pattern04, formatStyle04);
return number01;
} else if(number01.match(pattern05)){
number01 = number01.replace(pattern05, formatStyle05);
return number01;
} else if(number01.match(pattern06)){
number01 = number01.replace(pattern06, formatStyle06);
return number01;
} else {
return number01;
}
}
}