티스토리 뷰
반응형
입력폼에서 전화번호 입력했을 때 하이픈을 자동으로 기입하고 싶을 때가 있다.
입력할 때 계산해서 하이픈 자동 변환 함수를 만들어서 사용해 봤다.
function addHyphenToPhoneNumber(phoneNumberInput) {
const phoneNumber = phoneNumberInput.value;
const length = phoneNumber.length;
if(length >= 9) {
let numbers = phoneNumber.replace(/[^0-9]/g, "")
.replace(/^(\d{2,3})(\d{3,4})(\d{4})$/, `$1-$2-$3`);
phoneNumberInput.value = numbers;
}
}
const phoneInput = document.getElementById("phone");
phoneInput.addEventListener("input", () => {
addHyphenToPhoneNumber(phoneInput);
});
<input type="text" name="phone" id="phone" >
위와 같이 사용해서
최소 9자리에서 11자리가 입력 됐을 때 하이픈이 자동으로 생성되게 처리하였다.
// 정규식 설명
.replace(/[^0-9]/g, "") // 숫자 제외한 문자 제거
.replace(/^(\d{2,3})(\d{3,4})(\d{4})$/, `$1-$2-$3`) // 숫자 $1(2,3)-$2(3,4)-$3(4) 자리로 치환
반응형
'Javascript' 카테고리의 다른 글
[fullCalendar] title 명에 html 태그 적용하기 (feat.ibCalendar) (0) | 2024.02.21 |
---|---|
[Javascript] Object 동적으로 key 값 지정하기. (0) | 2024.01.12 |
[API] 다음카카오 우편번호 API (0) | 2023.09.19 |
[SemanticUI] dropdown 여러개 사용시 특정 id 이벤트 (0) | 2023.08.09 |
[Javascript] hidden 타입 전체 초기화. (0) | 2023.08.02 |
댓글