同様の質問があります ( Javascript phone mask for text field with regex )。
正規表現を使用して実行できます ( http://jsfiddle.net/BBeWN/45/で動作するコードを参照してください)。
var value = '1234567';
var formatted = value.replace(/^(\d{3})(\d{4}).*/, '$1-$2');
(\d{3})
上記の例では、括弧で囲まれた正規表現の各部分を参照して、それぞれおよび(\d{4})
を使用してフォーマットされたテキスト文字列を作成できることに注意してください。$1
$2
正規表現の N 個の部分が括弧で囲まれている場合、それらを参照して、それぞれ$1
、$2
、 ... で書式設定されたテキスト文字列を作成でき$N
ます。
したがって、言及した他の形式 ((000) 000-0000) の場合、コードは次のようになります。
var formatted = value.replace(/^(\d{3})(\d{3})(\d{4}).*/, '($1) $2-$3');
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressionsで、優れた JavaScript 正規表現リファレンスを見つけることができます。