我需要定期发送美国电话号码格式。我想在JavaScript中将电话号码字符串替换为以下美国电话号码字符串格式。
var number = "4031234789";
我想以下面的格式掩盖它: -
number = number.mask('(000) 000-0000');
任何人都可以在JavaScript中向我展示正则表达式吗?
答案 0 :(得分:70)
此答案假定您需要以下格式:(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"/>
&#13;
或者,如果您想在输入时屏蔽数字,您可以收听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] : '');
});
&#13;
<input type="text" id="phone" placeholder="(555) 555-5555"/>
&#13;
答案 1 :(得分:4)
您可以使用正则表达式,然后连接以形成您的字符串。
var USNumber = "4031234789".match(/(\d{3})(\d{3})(\d{4})/);<br/>
USNumber = "(" + USNumber[1] + ") " + USNumber[2] + "-" + USNumber[3];
答案 2 :(得分:0)
使用电话号码屏蔽插件。
检查以下插件:
答案 3 :(得分:0)
您可以使用我的包https://github.com/jsonmaur/coverup,它可以屏蔽输入字符串onblur并维护字符串中的符号。
答案 4 :(得分:0)
对于想在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">