정규식 - 전화번호

전화 번호

by jinam yu

HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
  <form class="p-4">
    <div class="form-group">
      <label for="exampleInputEmail1">전화번호를 입력해 보세요.</label>
      <input type="text" class="form-control" v-model="number" />
    </div>
    <div class="form-group">
      <input class="form-control" type="text" :value="output" readonly />
    </div>
  </form>
</div>

SCSS

html, body {
  background-color: #f8f9fa;
}

Vue

new Vue({
  el: "#app",
  data: {
    number: "01012345678",
  },
  computed: {
    output() {
      let value = this.number.replace(/[^0-9\-]/g, '');
      if (/^(\d{3})(\d)/.test(value)) {
        value = value.replace(/^(\d{3})(\d)/, '$1-$2');
      }
      if (/^(\d{3}-\d{4})(\d)/.test(value)) {
        value = value.replace(/^(\d{3}-\d{4})(\d)/, '$1-$2');
      }
      return value;
    }
  },
  methods: {},
  mounted() {}
})