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

标签 javascript regex mask phone-number

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

var number = "4031234789";

我想用以下格式屏蔽它:-

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

谁能告诉我 JavaScript 中的正则表达式吗?

最佳答案

此答案假设您需要以下格式:(000) 000-0000(如OP所述)。

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

<小时/>

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

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 事件,然后根据正则表达式匹配有条件地屏蔽数字: p>

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 - 使用 JavaScript 屏蔽美国电话号码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17651207/

相关文章:

javascript - 使用 JavaScript 在 IE 中未正确设置禁用属性

javascript - (函数(){}) vs 函数(){}();

python - 获取字符串中字符串的特定值

python - 替换所有出现的连续重复值对

python - 蒙版图像的 BGR 值(OpenCV、Python)

python - 如何从轮廓中分割圆?

Javascript 函数在 IE 和 Chrome 中不起作用

c# - 为什么正则表达式替换方法不起作用?

python - opencv:使用 r>b>g 提取像素

javascript - angularjs ng-bind 存储在 var 中后不起作用