<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script type="text/javascript" language="javascript"> var separNumTel = '-'; //trigger holders var wasplusAdded = false; var wasparleftAdded = false; var wasparrightAdded = false; function addSepNumTel(event, obj) { var keyCode = event.keyCode?event.keyCode:event.which; //evite de perdre la position du focus sur les touches backspace, prec, suiv, suppr if(keyCode != 8 && keyCode != 37 && keyCode != 39 && keyCode != 46) { var value = obj.value; var trueValue; //this will hold the true number count var valueTmp = ''; var count = 0; // holders var plusAdded = ""; var parleftAdded = ""; var parrightAdded = ""; //first Remove all special char + - () trueValue = value.replace(/[-()+]+/g,""); //determine if the user has aad one of the following + ,( ,) if(value.indexOf('+') != -1) { trueValue = trueValue.replace(/\++/g,""); plusAdded="+"; wasplusAdded = true; } else { //incase item was deleted reset trigger to false wasplusAdded = false; } if(value.indexOf('(') != -1) { trueValue = trueValue.replace(/\)+/g,""); parleftAdded = "("; wasparleftAdded = true; } else { //incase item was deleted reset trigger to false wasparleftAdded = false; } if(value.indexOf(')') != -1) { trueValue = trueValue.replace(/\(+/g,""); parrightAdded = ")"; wasparrightAdded = true; } else { //incase item was deleted reset trigger to false wasparrightAdded = false; } var i = 0; if(wasplusAdded) { valueTmp = plusAdded; if(trueValue.length > 0) { valueTmp += trueValue.charAt(i++); } if(trueValue.length > 1) { valueTmp += trueValue.charAt(i++); valueTmp += separNumTel; count ++; } } if(wasparleftAdded) { valueTmp += parleftAdded; if(trueValue.length > i) { valueTmp += trueValue.charAt(i++); } if(wasparrightAdded) { valueTmp += parrightAdded; if(wasplusAdded) { count ++; } } } while(i < trueValue.length) { if(i !0 && (i - count)%2 0) { valueTmp += separNumTel; valueTmp += trueValue.charAt(i++); } else { valueTmp += trueValue.charAt(i++); } } obj.value = valueTmp; } } function verifTel(event) { var authorizedChar = eval('/[' + separNumTel + '+()0123456789]/'); var keyCode = event.keyCode?event.keyCode:event.which; var char = String.fromCharCode(keyCode); //on autorise backspace, enter,ctrl, shift, alt, ..., prec, suiv, suppr if(keyCode > 20 && keyCode != 37 && keyCode != 39 && keyCode != 46 && !authorizedChar.test(char)) { alert('Les caract\350res autoris\351s sont : +()' + separNumTel + '0123456789'); return false; } return true; } </script> </head> 01-23-45-67-89 +33-1-23-45-67-89 +33-(0)1-23-45-67-89 (0)1-23-45-67-89 </html>