FRONTEND/Vue.js
[Vue] 카드번호 자동 하이픈(-) 정규식
숭코기
2023. 4. 13. 15:17
728x90
<template>
<div>
<input type="text" v-model.trim="cardNumber" @input="handleInput"/>
</div>
</template>
<script>
export default {
data() {
return {
cardNumber: ''
}
},
methods: {
handleInput(event) {
// first parmas: 사용자가 타입할때 들어오는 값
// second parmas: 타입 시점의 cardNumber 전체 값
this.cardNumber = this.cardFomatter(event.data, event.target.value);
},
cardFormatter(value, cardNumber) {
if (cardNumber.length > 19) reutrn;
let result = '';
// 0-9까지의 숫자와 하이픈(-) 값 체크
let check01 = /[^0-9-]/g;
// 하이픈 값 체크
let check02 = /[-]/g;
if (check01.test(cardNumber) || check02.test(value)) {
result = cardNumber.slice(0, -1);
} else {
// 0000-0000-0000-0000 형식이 되도록 숫자 4자리가 들어오면
// 하이픈을 자동으로 넣어준다
result = cardNumber.match(/[0-9●]{1,4}/g)?.join('-') || cardNumber;
}
return reuslt;
}
}
}
</script>
728x90