我需要美国电话号码格式的常规表达式。我想在JavaScript中将电话号码字符串替换为下面的美国电话号码字符串格式。
var number = "4031234789";
我想用下面的格式屏蔽它:
number = number.mask('(000) 000-0000');
谁能给我一个JavaScript中的正则表达式?
k5hmc34c1#
此答案假定您需要以下格式:(000) 000-0000(如OP所述)。有多种方法可以实现这一点,但这里有几种不同的方法:如果你想简单地屏蔽blur事件上的数字(当字段丢失focus时),那么你可以使用以下方法:
(000) 000-0000
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事件,然后根据正则表达式匹配有条件地屏蔽数字:
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"/>
pftdvrlh2#
可以使用正则表达式,然后连接以形成字符串。
var USNumber = "4031234789".match(/(\d{3})(\d{3})(\d{4})/); USNumber = "(" + USNumber[1] + ") " + USNumber[2] + "-" + USNumber[3]; console.log(USNumber);
rqenqsqc3#
对于那些想在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">
q8l4jmvw4#
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">
kx1ctssn5#
我以为我编辑了一些东西,使其符合555-555-5555格式,但我得到了x[1]的JavaScript错误。它说Uncaught TypeError:无法读取null的属性(阅读'1')代码仍然有效,但低于JS的平均用户,我仍在学习,我真的很想尝试和理解这里发生了什么。谢谢!
document.getElementById('Main_Phone').addEventListener('input', 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]); });
llew8vvj6#
document.addEventListener("DOMContentLoaded", () => { const input = document.querySelector("#tel-input"); input.addEventListener('input', (e) => { if (e.target.value) { const 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[2]}` : '') + (x[3] ? `-${x[3]}` : '') } }); });
<input id="tel-input" type="tel" class="form-control" value="" placeholder="xxx-xxx-xxxx" maxlength="12"/>
rhfm7lfc7#
这是我的解决方案根据wikipedia,最大电话号码长度为15 digitals下面的代码实现了掩码+00 (000) 000-00-00-000此外,退格键工作以及
+00 (000) 000-00-00-000
document.querySelector('[name="phone_number"]') .addEventListener('input', function (e) { var x = e.target.value.replace(/\D/g, '') .match(/(\d{0,2})(\d{0,3})(\d{0,3})(\d{0,2})(\d{0,2})(\d{0,3})/); if (!x[1]) { e.target.value = '+'; return; } if (!x[2]) { e.target.value = `+${x[1]}`; return; } e.target.value = `+${x[1]} (${x[2]}` + ( x[3] ? `) ${x[3]}` : '' ) + ( x[4] ? `-${x[4]}` : '' ) + ( x[5] ? `-${x[5]}` : '' ) + ( x[6] ? `-${x[6]}` : '' ); });
<input name="phone_number" placeholder="+00 (000) 000-00-00-000">
6tdlim6h8#
你可以使用我的包https://github.com/jsonmaur/coverup,它可以屏蔽输入字符串onblur并保持字符串中的符号。
ru9i0ody9#
使用电话号码屏蔽插件。检查以下插件:
9条答案
按热度按时间k5hmc34c1#
此答案假定您需要以下格式:
(000) 000-0000
(如OP所述)。有多种方法可以实现这一点,但这里有几种不同的方法:
如果你想简单地屏蔽
blur
事件上的数字(当字段丢失focus
时),那么你可以使用以下方法:或者,如果你想屏蔽数字 while 键入,你可以监听
input
事件,然后根据正则表达式匹配有条件地屏蔽数字:pftdvrlh2#
可以使用正则表达式,然后连接以形成字符串。
rqenqsqc3#
对于那些想在JS中发布乌兹别克斯坦的数量
q8l4jmvw4#
kx1ctssn5#
我以为我编辑了一些东西,使其符合555-555-5555格式,但我得到了x[1]的JavaScript错误。它说Uncaught TypeError:无法读取null的属性(阅读'1')代码仍然有效,但低于JS的平均用户,我仍在学习,我真的很想尝试和理解这里发生了什么。谢谢!
llew8vvj6#
rhfm7lfc7#
这是我的解决方案
根据wikipedia,最大电话号码长度为15 digitals
下面的代码实现了掩码
+00 (000) 000-00-00-000
此外,退格键工作以及
6tdlim6h8#
你可以使用我的包https://github.com/jsonmaur/coverup,它可以屏蔽输入字符串onblur并保持字符串中的符号。
ru9i0ody9#
使用电话号码屏蔽插件。
检查以下插件: