2011-02-03 7 views
0

다음 정규식을 사용하여 숫자를 전화 형식으로 변환합니다.Regex help required

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');

난 그냥이가 4 개 이상의 숫자를 취할 알려주는 \d{4 뒤에 쉼표를 추가했습니다.

또한이 사이트를 사용하여 정규식을 테스트합니다. http://gskinner.com/RegExr/ 매우 편리합니다.

1

유일한 이유는 내가 방금 전화 번호로 문자열을 포맷하려는 경우, 왜 그냥 Javascript Phone Number Formatter

+0

이런 과잉 배트맨을 사용하지, 당신은 정규식 유효성 검사를위한 사용하고자 볼 수 있습니다! –

+0

복사하고 스크립트 디렉토리에 놓은 다음 반복해서 사용하십시오. Regex는 (IMO) 최후의 수단입니다. –