|
|
|||||||||
|
|||||||||
|
|||||||||
| |
|||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Auto format Phone number
How would I get it to when some one enters a phone number it automaticly puts the "()" arounf the area code and the "-" between the first three digits and the last four?
breeze76 |
|
#2
|
|||
|
|||
|
Formatting Phone Numbers can be very easy!!
Hi,
I'm pretty surprised no one answered this for you, but I will .Here's a good site that'll do it automatically! http://javascript.internet.com/forms/format-phone-number.html Good Luck! |
|
#3
|
|||
|
|||
|
Updated AutoFormat Script for telephone numbers
Hi,
I was using that script developed by Roman Feldblum. My clients has requested more on this functionality. So I had to work on the original script and tried to develop it and add some more abilities. You can try the edited one at http://www.kodyaz.com/content/howto...honenumber.aspx Eralper |
|
#4
|
|||
|
|||
|
The below code automatically adds in the extension if the phone number goes beyond (nnn)nnn-nnnn. This is a mod of Kodyaz's code.
The only change is in the ValidatePhone function (also changed the max length to 23 chars): // *JGK - Handle extensions. Add in the x // after (nnn)nnn-nnnn to ensure extensions // appear correctly (i.e. (nnn)nnn-nnnnxnnnnnn ) if (l40>=13) { p41 = pp.substring(8,12); ppp = p40 + p41 + "x" + pp.substring(12,l40); } else { p41=pp.substring(8,l40); ppp=p40 + p41; } See full code below. L8r, Jage var zChar = new Array(' ', '(', ')', '-', '.'); var maxphonelength = 23; var phonevalue1; var phonevalue2; var cursorposition; function ParseForNumber1(object) { phonevalue1 = ParseChar(object.value, zChar); } function ParseForNumber2(object) { phonevalue2 = ParseChar(object.value, zChar); } function backspacerUP(object,e) { if(e) { e = e; } else { e = window.event; } if(e.which) { var keycode = e.which; } else { var keycode = e.keyCode; } ParseForNumber1(object); if(keycode >= 48) { ValidatePhone(object); } } function backspacerDOWN(object,e) { if(e) { e = e; } else { e = window.event; } if(e.which) { var keycode = e.which; } else { var keycode = e.keyCode; } ParseForNumber2(object); } function GetCursorPosition() { var t1 = phonevalue1; var t2 = phonevalue2; var bool = false; for (i=0; i<t1.length; i++) { if (t1.substring(i,1) != t2.substring(i,1)) { if(!bool) { cursorposition=i; bool=true; } } } } function ValidatePhone(object) { var p = phonevalue1; //p = p.replace(/[^\d*?x\d*]/gi,""); p = p.replace(/[^\d*]/gi,""); if (p.length < 3) { object.value=p; } else if(p.length==3) { pp=p; d4=p.indexOf('('); d5=p.indexOf(')'); if(d4==-1) { pp="("+pp; } if(d5==-1) { pp=pp+")"; } object.value = pp; } else if(p.length>3 && p.length < 7) { p ="(" + p; l30=p.length; p30=p.substring(0,4); p30=p30+")"; p31=p.substring(4,l30); pp=p30+p31; object.value = pp; } else if(p.length >= 7) { p ="(" + p; l30=p.length; p30=p.substring(0,4); p30=p30+")"; p31=p.substring(4,l30); pp=p30+p31; l40 = pp.length; p40 = pp.substring(0,8); p40 = p40 + "-"; // *JGK - Handle extensions. Add in the x // after (nnn)nnn-nnnn to ensure extensions // appear correctly (i.e. (nnn)nnn-nnnnxnnnnnn ) if (l40>=13) { p41 = pp.substring(8,12); ppp = p40 + p41 + "x" + pp.substring(12,l40); } else { p41=pp.substring(8,l40); ppp=p40 + p41; } object.value = ppp.substring(0, maxphonelength); } GetCursorPosition(); if(cursorposition >= 0) { if (cursorposition == 0) { cursorposition = 2; } else if (cursorposition <= 2) { cursorposition = cursorposition + 1; } else if (cursorposition <= 5) { cursorposition = cursorposition + 2; } else if (cursorposition == 6) { cursorposition = cursorposition + 2; } else if (cursorposition == 7) { cursorposition = cursorposition + 4; e1=object.value.indexOf(')'); e2=object.value.indexOf('-'); if (e1>-1 && e2>-1) { if (e2-e1 == 4) { cursorposition = cursorposition - 1; } } } else if (cursorposition < 11) { cursorposition = cursorposition + 3; } else if (cursorposition == 11) { cursorposition = cursorposition + 1; } else if (cursorposition >= 12) { cursorposition = cursorposition+1; } var txtRange = object.createTextRange(); txtRange.moveStart( "character", cursorposition); txtRange.moveEnd( "character", cursorposition - object.value.length); txtRange.select(); } } function ParseChar(sStr, sChar) { if (sChar.length == null) { zChar = new Array(sChar); } else zChar = sChar; for (i=0; i<zChar.length; i++) { sNewStr = ""; var iStart = 0; var iEnd = sStr.indexOf(sChar[i]); while (iEnd != -1) { sNewStr += sStr.substring(iStart, iEnd); iStart = iEnd + 1; iEnd = sStr.indexOf(sChar[i], iStart); } sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length); sStr = sNewStr; } return sNewStr; } |
|
#5
|
|||
|
|||
|
Hi there,
Thanks for the code edit. I tried to contact the owner of the code, but his email now bounces. But you have answered part of my question, making the code only accept numbers. But I would like to do two things. a) Change the code to format Australian phone numbers (00)0000-0000 and b) Use the code to check a second phone number (a mobile or cell phone number) in the format of 0000-000-000. Could you please help me? This code would be really useful to me. Browndog |
![]() |
| Viewing: Dev Articles Community Forums > Programming > JavaScript Development > Auto format Phone number |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|