LoginSignup
11
11

More than 3 years have passed since last update.

vue.jsで「数字」しか入力できないinput要素を作る

Last updated at Posted at 2018-08-15

2020/06/01追記

[今度こそ完全に理解した]vueで数字しか入力できないinputタグのカスタムコンポーネントを作る
の方で諸問題に対応したコードを公開したのでそちらを参照して頂けると。。。

「数字」とは

ここでいう「数字」というのは
「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」
です

「type="number"」だと

「数値」の入力フォームになるので上記の「数字」の他に「e」「.」「-」などが入力可能

解決策

泥臭い方法しか思いつかず、正規表現で数字以外を取り除くようにしました
うーん、ダサい!

フォーム
<input @input="validate" v-model="numValue">
メソッド
validate() { 
  this.numValue = this.numValue.replace(/\D/g, '')
}, 

正規表現

\Dは数字以外にマッチ
gは全体で複数箇所マッチさせるグローバルサーチというオプション

vue.js以外

タイトルに「vue.jsで」って書きましたがたぶんvue以外でも普通に動くと思います

11
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11