Hola.
puedes probar con este bloque de codigo:
Código HTML:
<html>
<head>
<title>Titulo</title>
</head>
<body>
<script>
function formatear(){
var num_sf=document.getElementById('tel').value;
var num_cf='';
num_cf=num_sf.substring(0,3)+"-";
num_cf+=num_sf.substring(3,6)+"-";
num_cf+=num_sf.substring(6,9);
document.getElementById('format').value=num_cf;
}
</script>
<form>
Telefono: <input type='text' id='tel'>
<input type='button' value='Formatear' onclick='formatear();'>
Formateado: <input tipe='text' id='format' readonly='true'>
</form>
<b>Nota solo funciona cuando el numero consta de 9 digitos.</b>
</body>
</html>
para algo mas generico tendrias que verificar la longitud de la cadena y la cantidad de digitos que irian en cada bloque.
suerte y cualquier cosa por aqui estamos.