在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue框架下,移動(dòng)端input控制輸入,只能輸入負(fù)數(shù)、小數(shù)或整數(shù),正則表達(dá)式匹配

vue框架下,移動(dòng)端input控制輸入,只能輸入負(fù)數(shù)、小數(shù)或整數(shù),正則表達(dá)式匹配

小白試了好多方法都不可以,onkeyup,oninput,v-on:input什么的都試過了,大神救命啊啊啊。。。

<!--這個(gè)方法,電腦端可以控制只能輸入負(fù)號(hào)數(shù)字和小數(shù)點(diǎn),手機(jī)端就不行了什么都可以輸入-->
<input type="number" oninput="this.value=this.value.replace(/[^0-9|^\\-|^\\.]/g,\'\').slice(0,11);" v-model="num"/>
<!--這個(gè)方法,電腦端、手機(jī)端就可以控制只能輸入數(shù)字和小數(shù)點(diǎn),但是負(fù)號(hào)不能輸入,主要是我不知道怎么寫正則-->
<input type="number" oninput="this.value=(this.value.replace(/[^0-9.]+/,'')).slice(0,11);" v-model="num"/>

是不是輸入監(jiān)聽的問題,大家的正則我都試了,但是依然輸入不了負(fù)號(hào)。。。。

回答
編輯回答
汐顏

/\-?\d+\.?\d+/

console.log("-0.5".match(/\-?\d+\.?\d+/));  // [ "-0.5" ]
console.log("dfs-0.5df5dsf".replace(/[^(\-?\d+\.?\d+)]/g,""));  //-0.55
console.log(/^\-?\d+\.?\d+$/.test("-0.5"));  //true
2017年5月25日 02:35
編輯回答
我甘愿

html部分

<input v-model="checkNum" ref="input"/>

js部分

data () {
  return {
    num: 0,
    reg: /^-$|^-?\d+(\.\d+)?$/
  }
},
computed: {
  checkNum: {
    get () {
      return this.num
    },
    set (val) {
      if (this.reg.exec(val)) {
        this.$refs.input.value = val
      } else {
        val = val.substring(0, val.length - 1)
        this.$refs.input.value = val
      }
      this.num = val
    }
  }
},

正則部分參考了樓上的寫法,input建議不要使用number類型,因?yàn)閚umber類型有很多格式檢測方面不便利的問題,比如maxlength不起作用,要自己寫js判斷maxlength

2017年9月8日 12:20
編輯回答
悶騷型
  /**
   * <input v-d1 v-model="num" />
   */
  Vue.directive('d1', {
    bind: function (el, binding, vnode) {
      el.$handler = function (e) {
        const val = el.value
        const reg = new RegExp('')

        if (val && !reg.test(val)) {
          el.value = val.replace(...)
          el.dispatchEvent(new Event('input', { bubbles: true }))
        }
      }

      el.addEventListener('input', el.$handler)
    },
    unbind: function (el, binding, vnode) {
      el.removeEventListener('input', el.$handler)
    }
  })
2017年6月7日 15:26
編輯回答
浪蕩不羈
/-?\d+(\.\d+)?/g

clipboard.png

2018年7月26日 01:24