How to accept a dot or period (.) in a price input field

Here I have written a vue.js watcher for autoprompting a comma after specific length of number and this code is working fine. But here I want to accept a dot (.) too. presently this vue code is not accepting dot ("."). So how can I achieve that I have tried with .lazy but that is not working for me.

new Vue({
  el: '#app',

  data() {
    return {price:''}
  },
  watch: {
    price: function(newValue) {
      const result = newValue.replace(/\D/g, "")
        .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
      Vue.nextTick(() => this.price = result);
    }
  },
  })
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>


<div id="app" class="container">

<input type="text" placeholder="Price" v-model.lazy="price" name="price"/>
</div>