2013-07-15 16 views
12

米国の電話番号の形式には正規表現が必要です。JavaScriptの電話番号の文字列の形式を米国の電話番号の文字列の形式に置き換えます。マスクJavaScriptを使用した米国の電話番号の文字列

var number = "4031234789"; 

そして、私はフォーマットの下にそれをマスクする: -

number = number.mask('(000) 000-0000'); 

は、誰も私にJavaScriptでそのための正規表現を表示することができますか?

+0

[javacriptを使用してHTML入力をマスクするにはどうすればいいですか?](http://stackoverflow.com/questions/7665792/how-can-i-mask-an-html-input-using-javacript) – mplungjan

+0

人々が[あなたの他の質問](http://stackoverflow.com/questions/17650197/mask-javascript-variable-value)であなたに与えたこれらすべての回答があります。 – elclanrs

答えて

2

あなたは正規表現を使用して、Fに連結することができますormあなたの文字列。

var USNumber = "4031234789".match(/(\d{3})(\d{3})(\d{4})/);<br/> 
USNumber = "(" + USNumber[1] + ") " + USNumber[2] + "-" + USNumber[3]; 
39

この回答は、次の形式が必要であると仮定しています:(000) 000-0000(OP状態として)。

があり、これを実現するために、複数の異なる方法がありますが、ここではカップルの異なるアプローチです:あなたは、単にblurイベント(フィールドはfocusを失う)に番号をマスクしたい場合


、あなたは、次を使用することができます。

document.getElementById('phone').addEventListener('blur', function (e) { 
 
    var x = e.target.value.replace(/\D/g, '').match(/(\d{3})(\d{3})(\d{4})/); 
 
    e.target.value = '(' + x[1] + ') ' + x[2] + '-' + x[3]; 
 
});
<p>Masked on the blur event (remove focus).</p> 
 
<input type="text" id="phone" placeholder="(555) 555-5555"/>


あなたはむしろタイピングしながら、数をマスクするならば別の方法として、あなたはinputイベントに耳を傾けることができ、その後、条件付き正規表現の一致に基づいて番号をマスク:

document.getElementById('phone').addEventListener('input', function (e) { 
 
    var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/); 
 
    e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : ''); 
 
});
<input type="text" id="phone" placeholder="(555) 555-5555"/>

+1

これは素晴らしい作品です!私は簡単に外国の郵便番号をマスクするためにそれを適応させることができました。 –

+1

この種の単純な機能を正確に検索していました。ほとんどが肥大し、うまく機能しませんでした。うわー! – mix3d

+0

IE11では互換モードで動作しません:(ただし、互換モードがオフの場合はきれいに動作します – LeSteelBox

関連する問題