色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題

瀏覽:104日期:2022-12-21 08:10:03

input輸入框中禁止輸入小數(shù)和負(fù)數(shù)(*只允許輸入正整數(shù) *)

最近在做項(xiàng)目中碰見了這么個(gè)問題,需要輸入數(shù)字,但是只能輸入正整數(shù),在網(wǎng)上找的沒找到自己想要的,所以就自己想了兩個(gè)辦法,在這里跟大家分享一下。(因?yàn)槭莿偖厴I(yè),第一次寫博客,所以有點(diǎn)生疏,請(qǐng)各位大佬擔(dān)待一些)

方法一:利用禁止按鍵的方法,主要是依靠禁止按下減號(hào)以及小數(shù)點(diǎn)來完成的

Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題

首先要監(jiān)聽keyup(鍵盤按下)事件,因?yàn)閑lementUi上面的input組件監(jiān)聽事件是沒有這個(gè)事件的,所以可能會(huì)報(bào)錯(cuò),所以我們需要加個(gè)vue事件的修飾符 .native,代表原生事件的意思。

然后我們傳個(gè)$event對(duì)象進(jìn)去來獲取原生的DOM(可以簡(jiǎn)單理解為觸發(fā)事件的本身)

接下來就是在methods中寫這個(gè)函數(shù)了

Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題

具體的意思我已經(jīng)寫在上面了,按下鍵后,可以自己彈出一下keynum和keychar所代表的的字符或者鍵盤碼,根據(jù)哪個(gè)判斷都可以,我選擇使用鍵盤碼來判斷進(jìn)入判斷后我們就可以做交互了,最后我選擇清掉用戶所輸入的數(shù)據(jù)。

方法二:利用正則表達(dá)式來規(guī)避掉小數(shù)點(diǎn)和負(fù)數(shù)

Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題

在這里呢使用的就是elementUI的事件了,我們監(jiān)聽一下失去焦點(diǎn)的時(shí)候要觸發(fā)事件,同樣的我們要傳入進(jìn)去$event參數(shù)

methods中編寫函數(shù)

Vue ElementUI實(shí)現(xiàn):限制輸入框只能輸入正整數(shù)的問題

這里使用的正則的意思代表的是(針對(duì)沒有接觸過正則的同學(xué),會(huì)的大佬們看看有什么錯(cuò)誤沒):

首先我們先看開頭的^和結(jié)尾的$這里分別代表匹配字符串的開頭以及匹配字符串的結(jié)尾,而[1-9]是代表的是匹配1-9其中的數(shù)字,所以會(huì)過濾掉負(fù)數(shù)和小數(shù),同時(shí)要求開頭必須要以1開頭,后面的則是匹配以0-9結(jié)尾的數(shù)字,而*代表的是0次或多次,也就是不限制結(jié)尾的數(shù)字,合起來的意思就是:我們匹配從1-9中的某個(gè)數(shù)開頭,并且以0-9中的某個(gè)數(shù)結(jié)尾的匹配。

最后呢,就是做的判斷了,如果符合我們所定義的正則就不用提示錯(cuò)誤了,如果不符合呢,就會(huì)提示錯(cuò)誤,同時(shí)清空數(shù)據(jù)

下面這些內(nèi)容是后追加的:

方法三:利用ES6語法includes來規(guī)篩掉 . 和 -

1.獲取到輸入框的值,對(duì)輸入框內(nèi)容進(jìn)行檢索

var inputText = document.querySelector(’#inputText’) inputText.addEventListener(’input’, function(){ if( this.value.includes(’.’)){ console.log(’不能輸入小數(shù)點(diǎn)’) }else if(this.value.includes(’-’)){ console.log(’不能輸入負(fù)數(shù)’) }else{ console.log(’正?!? } })

方法四:利用正則匹配出 . 或者 -

方法是和方法二一樣的,但是正則表達(dá)式則是:/^d+.d$/

附上兩個(gè)實(shí)例:

let regx = /^d+.d+$/;let num_two = 1.252;const newNum_two = regx.test(num_two)console.log(newNum_two)

解釋:

/^d+:以任意一個(gè)數(shù)字開頭 +:出現(xiàn)一次或多次

.:第二位為小數(shù)點(diǎn)

d+$ :以任意一個(gè)數(shù)字結(jié)尾并且出現(xiàn)一次或多次

let regx_two = /^-d.?d*$/;let num_three = -2.53;const newNum_three = regx_two.test(num_three)console.log(newNum_three)

解釋:

/^-:以 - 號(hào) 開頭

d:第二位肯定是個(gè)數(shù)字

.:第三位可能會(huì)出現(xiàn)0次或者1次的 .

d* 以數(shù)字 結(jié)尾出現(xiàn)0次或多次(這樣就可以如果輸入的單單是-2的話,也能匹配到)

OK分享到此結(jié)束,如果我之后還有什么辦法,再來分享給大家,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩精品一区二区免费看 | 男人的天堂精品国产一区 | 日韩一区二区三区免费视频 | 成年人国产 | 香蕉久| 免费国产黄 | 日韩一级欧美一级毛片在线 | 美女视频黄色的免费 | 国产精品亚洲一区二区三区久久 | 美女操男人 | 亚洲第一看片 | 一级毛片免费在线 | 久久久国产精品视频 | 97国产精品视频观看一 | 兔费看全黄三级 | 黄色美女视频免费 | 在线观看精品视频网站www | 欧美极品欧美精品欧美视频 | 精品免费在线视频 | 国产精品色综合久久 | 亚洲综合色吧 | 三级黄色在线观看 | 亚洲精品一区二区三区国产 | 99久久国产综合精品国 | 九草视频 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 国产精品资源手机在线播放 | 成人亚洲在线 | 国产网址在线观看 | 99视频精品免费99在线 | 一级全免费视频播放 | 欧美日韩精品一区二区三区不卡 | 亚洲网站视频在线观看 | 欧美日韩高清不卡一区二区三区 | 亚洲高清不卡 | 国产手机在线精品 | 亚洲国产一区二区三区在线观看 | 亚洲一级毛片在线播放 | 中国二级毛片 | 国产午夜免费视频片夜色 | 国产成人一区二区三区影院免费 |