0

我正在使用以下正则表达式将数字转换为电话格式。

telephoneNumber = '1234567890';
var number = telephoneNumber.replace(/\D/g,''); 
newNumber = number.replace(/^(\d{3})(\d{3})(\d{4})$/, '($1)$2-$3'); // (123)456-7890

问题是如果 phoneNumber.length 大于 10 则它什么也不做。我想在电话号码的末尾添加额外的数字。

例如:

change 1234567890 to (123)456-7890
change 1234567890111 to (123)456-7890111

我应该在上面的正则表达式中改变什么。

谢谢。

4

2 回答 2

1

尝试将最后一行更改为: newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');

我只是在 this 之后添加了一个逗号,\d{4告诉它需要 4 位或更多位。

另外,我经常使用这个网站来测试我的正则表达式: http: //gskinner.com/RegExr/它非常方便。

于 2011-02-03T06:44:01.823 回答
1

我可以看到您想要使用正则表达式的唯一原因是用于验证,但是如果您只是尝试将字符串格式化为电话号码,为什么不只使用Javascript 电话号码格式化程序

于 2011-02-03T06:47:13.713 回答