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="//" />
<script src=""></script>

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

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