我正在使用以下正则表达式将数字转换为手机格式。
telephoneNumber = '1234567890';
var number = telephoneNumber.replace(/\D/g,'');
newNumber = number.replace(/^(\d{3})(\d{3})(\d{4})$/, '($1)$2-$3'); // (123)456-7890
问题是,如果telephoneNumber.length大于10,那么它什么都不做。我想在电话号码的末尾添加额外的数字。
例如:
change 1234567890 to (123)456-7890
change 1234567890111 to (123)456-7890111
我应该在上面的正则表达式中改变什么。
感谢。
答案 0 :(得分:1)
尝试将最后一行更改为:
newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');
我刚刚在\d{4
之后添加了一个逗号,它告诉它需要4位或更多位数。
另外,我经常使用这个网站来测试我的正则表达式:http://gskinner.com/RegExr/这非常方便。
答案 1 :(得分:1)
我可以看到您想要使用正则表达式的唯一原因是验证,但是如果您只是尝试将字符串格式化为电话号码,为什么不使用Javascript Phone Number Formatter