Vue實現數值型輸入框並限制長度
vue數值型輸入框並限制長度
描述
原有的 <el-input type="number" /> 個人覺得存在問題,maxlength 屬性無法生效,其次 max 屬性雖然能夠限制,但是無法阻止用戶手動輸入,因此依然存在 bug
代碼
改為正則表達式方式
<el-input v-model="form.level" onkeyup="this.value=this.value.replace(/[^\d.]/g,'');" maxlength="10" show-word-limit clearable />
vue輸入框限制各種輸入格式
1.限制隻能輸入數字、帶小數點的數字
<el-input v-model="form.userName" @input="onInput('keyName', $event)"></el-input>
// 限制隻能輸入數字、帶小數點的數字、小數點保留5位,想要小數點後保留多少位,可將{0,5}中的5改為對應的位數,例如保留1位:{0,1} onInput(key, event){ this.form[key] = event.match(/^\d*(\.?\d{0,5})/g)[0] }
2.限制輸入的隻能為11位手機號
<el-input v-model="form.phone" maxlength="11" @input="onInput('keyName', $event)"></el-input>
// 首先限制它隻能輸入整數,最大長度為maxlength="11",其次是當它輸入長度達到11位時進行校驗 onInput(key, event){ this.form[key] = event.replace(/[^\d]/g,'') if(event.length >= 11) { const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/ if(!reg.test(event)) { console.log('您輸入的手機號不正確') } } }
3.電子郵箱正則
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
4.身份證正則
// 身份證普通的校驗 /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
// 18位身份證精準校驗 /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Elementui如何限制el-input框輸入小數點
- vue 監聽input輸入事件(oninput)的示例代碼支持模糊查詢
- vue將數字轉為中文大寫金額方式
- vue之Element-Ui輸入框顯示與隱藏方式
- vue登錄頁實現使用cookie記住7天密碼功能的方法