답변 2개 / 댓글 2개
입력 후 키를 떼는 순간, 8자리의 숫자일 때 Y-m-d 형태로 치환합니다.
함수로 따로 빼지 않았습니다.
Copy
<input type="text" onkeyup="if(/^\d{8}$/.test(this.value))this.value=this.value.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3');">
Copy
<script>
function date_number(vv){
str=vv.value;
var RegNotNum = /[^0-9]/g;
var RegPhonNum = "";
var DataForm = "";
if( str == "" || str == null ) return "";
str = str.replace(RegNotNum,'');
if( str.length < 5 ) return str;
if( str.length > 4 && str.length <= 6 ) {
DataForm = "$1-$2";
RegPhonNum = /([0-9]{4})([0-9]+)/;
} else if(str.length > 6){
DataForm = "$1-$2-$3";
RegPhonNum = /([0-9]{4})([0-9]{2})([0-9]+)/;
}
while( RegPhonNum.test(str) ) {
str = str.replace(RegPhonNum, DataForm);
}
vv.value=str;
}
</script>
<input type="text" name="date" value="" onkeyup="date_number(this);">
답변을 작성하려면 로그인이 필요합니다.