web-dev-qa-db-ja.com

JavaScriptを使用して米国の電話番号文字列をマスクする

米国の電話番号の形式には通常のエクスプレスが必要です。電話番号の文字列をJavaScriptの米国の電話番号の文字列形式に置き換えたいと思います。

var number = "4031234789";

そして、私はそれを以下の形式でマスクしたい:-

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

JavaScriptで正規表現を表示できる人はいますか?

23
Pawan

この回答は、次の形式が必要であることを前提としています:_(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"/>_

代わりに、数字をマスクする場合はwhileを入力して、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"/>
78
Josh Crozier

正規表現を使用してから、連結して文字列を形成できます。

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

そのために電話番号マスキングプラグインを使用します。

以下のプラグインを確認してください。

0
Deepu

私のパッケージ https://github.com/jsonmaur/coverup を使用できます。これは、入力文字列onblurをマスクし、文字列内のシンボルを維持できます。

0
jsonmaur