내가 자바 스크립트와 HTML에 자동 형식으로 입력을 시도하고, 그것은 거의 완료, 난 XXX-XXX-XXXX로 형식을 필요로하지만, 나는이 코드자동 올바른 전화 번호 형식 입력
this.value = this.value.replace(/(\d{3})\-?/g,'$1-');
에게 있습니다
youy가 볼 수 있듯이 xxx-xxx-xxx는 자동으로 서식을 지정하지만 끝에 4 자리가 필요합니다.
모든 요망? 당신을 도울 수있는
내가 자바 스크립트와 HTML에 자동 형식으로 입력을 시도하고, 그것은 거의 완료, 난 XXX-XXX-XXXX로 형식을 필요로하지만, 나는이 코드자동 올바른 전화 번호 형식 입력
this.value = this.value.replace(/(\d{3})\-?/g,'$1-');
에게 있습니다
youy가 볼 수 있듯이 xxx-xxx-xxx는 자동으로 서식을 지정하지만 끝에 4 자리가 필요합니다.
모든 요망? 당신을 도울 수있는
샘플 코드 :
var phone = '(555) 666-7777';
// First clean your input
phone = phone.replace(/[^\d]/g, '');
// Check the length of the phone
if(phone.length == 10){
// Now we can format the phone
phone = phone.substring(0,3)+'-'+phone.substring(3,6)+'-'+phone.substring(6, 10);
// Optionally
//phone = phone.replace(/(\d{3})(\d{3})/, '$1-$2-');
}
else {
// whatever you want to tell the user
}
이 정규 표현식을 시도해보십시오
'1234567890'.replace(/(\d{3}(?!\d?$))\-?/g, '$1-'); // 123-456-7890
부분 (?!\d?$)
는 부정적 예측이다. $
문자열의 끝에서 다른 숫자 (네 번째) (단, 반드시 ?
일 필요는 없음)가 나오지 않는 경우에만 정규 표현식이 세 자리 숫자와 일치 할 수 있습니다.
0$
이 계속 표시되므로 789
그룹과 일치하지 않습니다.
위의 "replace"정규 표현식에 버그가있는 것 같습니다. 10 자리 숫자를 입력하면 형식이 올바르게 표시됩니다 (예 : "(123) 456-7890"). 그런 다음 필드 내용을 두 번 또는 세 번 클릭하여 선택하고 값을 다시 입력하십시오. 처음 두 자릿수가 바뀝니다. 그래서 1 2 3을 입력하면 2 1 3 ...
안녕하세요, S-O에 오신 것을 환영합니다. 이것은 실제로 대답이 아니기 때문에 질문에 대한 주석이어야합니다. –
awsome, 내가 필요한 것입니다. – user3516479