2011-02-03 266 views
0

我正在使用以下正則表達式將數字轉換爲手機格式。需要正則表達式幫助

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 

我應該怎麼上述正則表達式改變英寸

謝謝。

回答

1

嘗試將最後一行到這一點: newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');

我只是增加了一個逗號\d{4在此之後告訴它需要4個或多個數字。

此外,我經常使用這個網站來測試我的正則表達式:http://gskinner.com/RegExr/這非常方便。

1

唯一的原因,我可以看到你想要使用正則表達式是驗證,但是如果你只是想將字符串格式化爲一個電話號碼,爲什麼不直接使用Javascript Phone Number Formatter

+0

聖矯枉過正蝙蝠俠! – 2011-02-03 06:49:31