Paw*_*wan 23 javascript regex mask phone-number
我需要美国电话号码格式的常规快递.我想用JavaScript替换电话号码字符串到美国电话号码字符串格式.
var number = "4031234789";
Run Code Online (Sandbox Code Playgroud)
我想以下面的格式掩盖它: -
number = number.mask('(000) 000-0000');
Run Code Online (Sandbox Code Playgroud)
任何人都可以在JavaScript中向我展示正则表达式吗?
Jos*_*ier 83
这个答案假定您需要以下格式:( (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];
});Run Code Online (Sandbox Code Playgroud)
<p>Masked on the blur event (remove focus).</p>
<input type="text" id="phone" placeholder="(555) 555-5555"/>Run Code Online (Sandbox Code Playgroud)
或者,如果您希望在键入时屏蔽该数字,则可以侦听该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] : '');
});Run Code Online (Sandbox Code Playgroud)
<input type="text" id="phone" placeholder="(555) 555-5555"/>Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用正则表达式,然后串联以形成您的字符串。
var USNumber = "4031234789".match(/(\d{3})(\d{3})(\d{4})/);<br/>
USNumber = "(" + USNumber[1] + ") " + USNumber[2] + "-" + USNumber[3];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45005 次 |
| 最近记录: |