Vue限制輸入框只能輸入數字

一、Vue限制輸入框只能輸入數字和小數

在Vue中,我們可以通過正則表達式限制輸入框只能輸入數字和小數。具體實現方法如下:


// template
<template>
  <input type="text" v-model="inputNumber" :pattern="numberPattern">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: '',
      numberPattern: '^\\d+(\\.\\d{0,2})?$' // 正則表達式,限制小數點後最多兩位
    }
  }
}
</script>

在上面的代碼中,我們通過v-model綁定輸入框的內容到data中的inputNumber變量中,通過:pattern屬性綁定正則表達式到輸入框中,限制輸入框只能輸入數字和小數點,並且小數點後最多只能有兩位數字。

二、Vue限制輸入框只能輸入數字手機號

在實際開發中,我們經常需要限制輸入框只能輸入數字手機號。下面是實現方法:


// template
<template>
  <input type="text" v-model="phoneNumber" :maxlength="11" :pattern="phoneNumberPattern">
</template>

// script
<script>
export default {
  data() {
    return {
      phoneNumber: '',
      phoneNumberPattern: '^1[3|4|5|7|8][0-9]{9}$' // 正則表達式,限制只能輸入11位數字手機號
    }
  }
}
</script>

上述代碼中,我們通過:maxlength屬性限制輸入框只能輸入11位手機號,通過:pattern屬性綁定正則表達式,保證輸入框中只能輸入如”13012345679″格式的手機號碼。

三、限制輸入框只能輸入數字

限制輸入框只能輸入數字是比較常見的需求,下面是Vue實現方法:


// template
<template>
  <input type="text" v-model="inputNumber" :pattern="numberPattern">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: '',
      numberPattern: '[0-9]*' // 正則表達式,限制只能輸入數字
    }
  }
}
</script>

在上述代碼中,我們通過:pattern屬性綁定正則表達式,保證輸入框中只能輸入數字。

四、Vue輸入框只能輸入正整數

有時候,我們需要限制輸入框只能輸入正整數。在Vue中,可以這樣實現:


// template
<template>
  <input type="text" v-model="integerNumber" :pattern="integerNumberPattern">
</template>

// script
<script>
export default {
  data() {
    return {
      integerNumber: '',
      integerNumberPattern: '[1-9]\\d*' // 正則表達式,限制只能輸入正整數
    }
  }
}
</script>

在上述代碼中,我們通過:pattern屬性綁定正則表達式,保證輸入框中只能輸入正整數。

五、Vue輸入框限制數字長度

有時候,我們需要限制輸入框中數字的位數。可以這樣實現:


// template
<template>
  <input type="text" v-model="inputNumber" :maxlength="maxNumberLength">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: '',
      maxNumberLength: 6 // 限制數字位數為6位
    }
  }
}
</script>

在上述代碼中,我們通過:maxlength屬性限制數字最多只能輸入六位。

六、Vue輸入框輸入事件

在實際開發中,我們可能需要在用戶輸入時判斷輸入是否符合要求。Vue提供了@input事件來實現這個需求:


// template
<template>
  <input type="text" v-model="inputNumber" @input="onInputNumber">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: ''
    }
  },
  methods: {
    onInputNumber() {
      if (isNaN(this.inputNumber)) // 判斷是否輸入的為數字
        this.inputNumber = '';
    }
  }
}
</script>

上面的代碼中,@input事件綁定了onInputNumber方法,當用戶輸入時,如果輸入的不是數字,則將輸入框清空。

七、Vue輸入框無法輸入內容

有時候,我們需要在某些情況下禁止用戶輸入內容,可以通過Vue的disabled屬性來實現:


// template
<template>
  <input type="text" v-model="inputNumber" :disabled="disableInput">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: '',
      disableInput: true // 禁止用戶輸入
    }
  }
}
</script>

在上述代碼中,我們將disabled屬性設為true,從而禁止用戶輸入內容。

八、Vue 輸入框限制兩位小數

有時候,我們需要限制輸入框中小數點後最多只能有兩位,可以這樣實現:


// template
<template>
  <input type="text" v-model="inputNumber" @input="onInputNumber">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: ''
    }
  },
  methods: {
    onInputNumber(event) {
      let value = event.target.value;
      value = value.replace(/[^\d.]/g, '');  // 清除"數字"和"."以外的字符
      value = value.replace(/^\./g, '');     // 驗證第一個字符是數字而不是
      value = value.replace(/\.{2,}/g, '.'); // 只保留第一個小數點,清除多餘的
      value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); // 限制只能輸入兩位小數
      event.target.value = value;
      this.inputNumber = value;
    }
  }
}
</script>

在上面的代碼中,我們通過@input事件捕捉用戶輸入,然後用正則表達式去除不符合要求的字符,最後限制小數點後只能有兩位。

九、Vue輸入框禁止輸入選取

在實際開發中,我們可能需要限制用戶只能通過輸入來改變輸入框中的內容,不能通過選取來改變內容。Vue提供了onSelect事件實現這個需求:


// template
<template>
  <input type="text" v-model="inputNumber" @select="onSelect">
</template>

// script
<script>
export default {
  data() {
    return {
      inputNumber: ''
    }
  },
  methods: {
    onSelect() {
      window.getSelection().removeAllRanges(); // 防止用戶通過選取來改變輸入框內容
    }
  }
}
</script>

在上述代碼中,我們通過@select事件捕捉用戶的選取動作,並調用window.getSelection().removeAllRanges()方法來禁止用戶通過選取來改變輸入框內容。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/283258.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 08:07
下一篇 2024-12-22 08:07

相關推薦

  • Python循環符合要求數字求和

    這篇文章將詳細介紹如何通過Python循環符合要求數字求和。如果你想用Python求和但又不想手動輸入數字,那麼本文將是一個不錯的選擇。 一、使用while循環實現求和 sum =…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • Python數字求和怎麼寫

    在Python中實現數字求和非常簡單,下面將從多個方面對Python數字求和的實現方法做詳細的闡述。 一、直接使用「+」符號進行求和 a = 10 b = 20 c = a + b…

    編程 2025-04-29
  • Python打印數字三角形

    本文將詳細闡述如何使用Python打印數字三角形,包括從基本代碼實現到進階操作的應用。通過本文的學習,您可以掌握Python的基礎語法,同時加深對Python循環和函數的理解,提高…

    編程 2025-04-29
  • Python提取連續數字

    本文將介紹如何使用Python提取一個字符串中的連續數字。 一、使用正則表達式提取 正則表達式是一種可以匹配文本片段的模式。Python內置了re模塊,可以使用正則表達式進行字符串…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • Python中如何判斷字符為數字

    判斷字符是否為數字是Python編程中常見的需求,本文將從多個方面詳細闡述如何使用Python進行字符判斷。 一、isdigit()函數判斷字符是否為數字 Python中可以使用i…

    編程 2025-04-29
  • Python如何將字符串1234變成數字1234

    Python作為一種廣泛使用的編程語言,對於數字和字符串的處理提供了很多便捷的方式。如何將字符串「1234」轉化成數字「1234」呢?下面將從多個方面詳細闡述Python如何將字符…

    編程 2025-04-29
  • Python實現統計100以內能被7整除的數字個數

    本文將從以下幾個方面詳細闡述如何使用Python來實現統計100以內能被7整除的數字個數。具體內容包括: 一、range函數 Python中的range函數是用來生成一個數字序列的…

    編程 2025-04-28

發表回復

登錄後才能評論