编程语言
首页 > 编程语言> > 使用JavaScript屏蔽美国电话号码字符串

使用JavaScript屏蔽美国电话号码字符串

作者:互联网

我需要美国电话号码格式的常规快递.我想用JavaScript替换电话号码字符串到美国电话号码字符串格式.

var number = "4031234789";

我想以下面的格式掩盖它: –

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

任何人都可以在JavaScript中向我展示正则表达式吗?

解决方法:

这个答案假定您需要以下格式:(000)000-0000(作为OP状态).

有多种不同的方法可以实现这一点,但这里有几种不同的方法:

如果您想简单地屏蔽模糊事件上的数字(当该字段失去焦点时),那么您可以使用以下内容:

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"/>

或者,如果您希望在键入时屏蔽数字,则可以侦听输入事件,然后根据正则表达式匹配有条件地屏蔽数字:

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"/>

标签:javascript,regex,mask,phone-number
来源: https://codeday.me/bug/20190918/1811844.html