需要正则表达式帮助

时间:2011-02-03 06:40:50

标签: jquery regex string-parsing

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

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

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

感谢。

2 个答案:

答案 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

相关问题