39

我需要美国电话号码格式的常规快递。我想在 JavaScript 中将电话号码字符串替换为以下美国电话号码字符串格式。

var number = "4031234789";

我想用以下格式掩盖它: -

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

任何人都可以在 JavaScript 中显示一个正则表达式吗?

4

6 回答 6

139

此答案假定您需要以下格式:((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"/>

于 2015-03-29T22:00:27.500 回答
9

您可以使用正则表达式,然后连接以形成您的字符串。

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

于 2013-07-15T09:55:01.947 回答
3

对于那些想在JS中发布乌兹别克斯坦数量的人

  document.getElementById('organization_phone').addEventListener('input', function (e) {
    var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,2})(\d{0,3})(\d{0,2})(\d{0,2})/);
    e.target.value = '+(' + x[1] + ') ' + x[2] + '-' + x[3] + '-' + x[4] + '-' + x[5];
  });
 <input type="text" id="organization_phone" name="organization_phone"  required placeholder="(+998) 99-000-00-00" value="+998">

于 2021-08-01T09:12:08.807 回答
3

      document.getElementById('organization_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[1] + ') '+ x[2] + '-' + x[3]
      });
<input type="text" id="organization_phone" name="organization_phone"  required placeholder="(998) 000-0000">

于 2021-11-04T11:18:47.440 回答
-1

你可以使用我的包https://github.com/jsonmaur/coverup,它可以屏蔽输入字符串 onblur 并维护字符串中的符号。

于 2016-05-11T20:13:22.033 回答
-2

为此使用电话号码屏蔽插件。

检查以下插件:

于 2013-07-15T09:47:35.327 回答