Требуется помощь по регулярному выражению - PullRequest
0 голосов
/ 03 февраля 2011

Я использую следующее регулярное выражение для преобразования цифр в формат телефона.

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

Что я должен изменить в приведенном выше регулярном выражении.

Спасибо.

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Единственная причина, по которой я вижу, что вы хотите использовать Regex, - это проверка, однако, если вы просто пытаетесь отформатировать строку в телефонный номер, почему бы просто не использовать Javascript Phone Number Formatter

1 голос
/ 03 февраля 2011

Попробуйте изменить последнюю строку на эту: newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');

Я только что добавил запятую после \d{4, это говорит о том, что она принимает 4 или более цифр.

Кроме того, я часто использую этот сайт для проверки своих регулярных выражений: http://gskinner.com/RegExr/ Это ОЧЕНЬ удобно.

...