еще вариант
<input type="text" onkeyup="formattingNumbers( this )">
<script>
function formattingNumbers( elem ) {
var num = elem.value.replace( /\D/g, '' ).split( /(?=.)/ ), i = num.length - 1;
if ( 0 <= i ) num.unshift( '+ ' );
if ( 1 <= i ) num.splice( 2, 0, ' ' );
if ( 4 <= i ) num.splice( 6, 0, ' ' );
if ( 7 <= i ) num.splice( 10, 0, '-' );
if ( 9 <= i ) num.splice( 13, 0, '-' );
elem.value = num.join( '' );
}
</script>