테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 input value 값 변경 질문

호운아 3년 전 조회 1,854

안녕하세요 날짜 입력 관련해서 지금 코딩중인데 예를 들어서 사용자가 input에서 20220101 이렇게 입력하면 2022-01-01 이런식으로 value 값이 자동으로 변경되게 할려면 어떤 식으로 해야 할까요? 읽어주셔서 감사합니다. 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

B
3년 전

입력 후 키를 떼는 순간, 8자리의 숫자일 때 Y-m-d 형태로 치환합니다.

함수로 따로 빼지 않았습니다.

</p>

<p><input type="text" onkeyup="if(/^\d{8}$/.test(this.value))this.value=this.value.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3');"></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

호운아
3년 전
정말 감사합니다 ㅜㅜ.. 비록 구글링 열심히 해서 다른방법으로 어찌 되긴했지만 이게 더 좋아보이네요 ㅎㅎ.. 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

e
3년 전

</p>

<p><script></p>

<p>function date_number(vv){</p>

<p>    str=vv.value;</p>

<p> </p>

<p>    var RegNotNum  = /[^0-9]/g;</p>

<p>    var RegPhonNum = "";</p>

<p>    var DataForm   = "";</p>

<p> </p>

<p>    if( str == "" || str == null ) return "";</p>

<p>    str = str.replace(RegNotNum,'');</p>

<p>    if( str.length < 5 ) return str;</p>

<p> </p>

<p>    if( str.length > 4 && str.length <= 6 ) {</p>

<p>        DataForm = "$1-$2";</p>

<p>        RegPhonNum = /([0-9]{4})([0-9]+)/;</p>

<p>    } else if(str.length > 6){</p>

<p>        DataForm = "$1-$2-$3";</p>

<p>        RegPhonNum = /([0-9]{4})([0-9]{2})([0-9]+)/;</p>

<p>    }</p>

<p> </p>

<p>    while( RegPhonNum.test(str) ) {  </p>

<p>        str = str.replace(RegPhonNum, DataForm);  </p>

<p>    }</p>

<p> </p>

<p>    vv.value=str;</p>

<p>}</p>

<p></script></p>

<p> </p>

<p><input type="text" name="date" value="" onkeyup="date_number(this);"></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

호운아
3년 전
오... 이런 방법도 있었군요.. 저도 계속 찾아보다가 .slice() 로 3등분해서 잘라서 중간에 + "-" 이렇게 해서 넣었습니다 ㅜㅜ 다음에는 이런 방법으로 하면 더 좋겠네요!! 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인