티스토리 뷰

react

[React] 휴대전화 자동 하이푼(-)

현이승 2023. 3. 25. 13:34

회원가입 페이지를 구현하는데 휴대폰 번호를 입력받아야 했다.

010-1234-5678 형식으로 자동으로 하이푼(-)이 생성될 수 있도록 하고싶었다.

이를 위해 input 태그의 onChange이벤트를 통하여 handlePhone함수를 호출하였고

handlePhone 함수에서 검사를 통해 state를 업데이트 하였다.

const [phone, setPhone] = useState('');

const handlePhone = (value: string) => {
    const onlyNumber = value.replace(/\D+/g, '');
    const numberLength = 11;
    
    let result = "";
    for(let i=0; i<onlyNumber.length && i < numberLength; i++){
      switch (i) {
        case 3:
          result += "-";
          break;
        case 7:
          result += "-";
          break;

        default:
          break;
      }
      result += onlyNumber[i];
    }
    setPhone(result);
 }
  
const onChangehandler = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
    handlePhone(e.target.value);
}, [phone]);
<input
  type="tel"
  value={phone} 
  name="phoneNumber"
  onChange={onChangehandler}
></input>

결과

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함