input輸入框限制只能輸入數(shù)字的方法實(shí)例(個(gè)人認(rèn)為最好的)
限制input輸入框限制輸入為數(shù)字
在項(xiàng)目中會(huì)遇到表單填寫(xiě)的時(shí)候在input中輸入純數(shù)字的情況,這個(gè)時(shí)候需要我們?cè)谳斎肟驅(qū)τ脩?hù)的輸入做一些限制
一、使用JS限制 input 輸入框只能輸入純數(shù)字
1、onkeyup = "value=value.replace(/[^\d]/g,'')"
使用 onkeyup 事件,有 bug ,那就是在中文輸入法狀態(tài)下,輸入漢字之后直接回車(chē),會(huì)直接輸入字母,所以:不推薦
2、onchange = "value=value.replace(/[^\d]/g,'')"
缺點(diǎn):使用 onchange 事件,在輸入內(nèi)容后,只有 input 喪失焦點(diǎn)時(shí)才會(huì)得到結(jié)果,并不能在輸入時(shí)就做出響應(yīng)
3、oninput = "value=value.replace(/[^\d]/g,'')"
使用 oninput
事件,完美的解決了以上兩種問(wèn)題,他可以即時(shí)做出響應(yīng),
缺點(diǎn):當(dāng)你先輸入數(shù)字,切輸入法中文,開(kāi)始輸入,之前輸入的數(shù)字會(huì)一個(gè)個(gè)的都消失,直到內(nèi)容為空
4、最后,我發(fā)現(xiàn)了一個(gè)功能實(shí)現(xiàn)上最好的:同時(shí)使用onkeyup="this.value=this.value.replace(/\D/g,'')" + onafterpaste="this.value=this.value.replace(/\D/g,'')"
,唯一不太行的就是 輸入英文或中文是輸入框都會(huì)頻閃一下鍵盤(pán)輸入的東西,但還是可以接受的
二、VUE使用a-input-number組件限制 input 輸入框只能輸入純數(shù)字
利用a-input-number組件的controls屬性api去控制不顯示增減數(shù)值的按鈕
缺點(diǎn):當(dāng)你輸入中文或英文時(shí),只有在輸入框失去焦點(diǎn) 的時(shí)候才會(huì)去校驗(yàn)數(shù)字
三、VUE使用a-input組件利用type=number限制 input 輸入框只能輸入純數(shù)字
當(dāng)input 使用了type='number’后,會(huì)出現(xiàn)這個(gè)增減數(shù)值的按鈕,這里建議使用css去控制不顯示:
<a-input type='number' />
// css部分 需要注意瀏覽器兼容問(wèn)題
<style lang="css" scoped>
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
appearance: none;
margin: 0;
}
/* 火狐 */
input {
-moz-appearance: textfield;
}
缺點(diǎn):就是你輸入中文或者英文他會(huì)直接拼接一個(gè)
'e' 或 'E',所以:‘不推薦’
總結(jié):最最最后,個(gè)人感覺(jué)使用JS的方案四比較合適
onkeyup="this.value=this.value.replace(/\D/g,'')" + onafterpaste="this.value=this.value.replace(/\D/g,'')"
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
淺淺擴(kuò)展一下:
JS判斷只能是數(shù)字和小數(shù)點(diǎn)
1.文本框只能輸入數(shù)字代碼(小數(shù)點(diǎn)也不能輸入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.只能輸入數(shù)字,能輸小數(shù)點(diǎn).
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能輸入數(shù)字');this.value='';}">3.數(shù)字和小數(shù)點(diǎn)方法二
<input
type="text"
t_value=""
o_value=""
onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"
/>
4.只能輸入字母和漢字
<input onkeyup="value=value.replace(/[\d]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))"maxlength=10 name="Numbers"> 5.只能輸入英文字母和數(shù)字,不能輸入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6.只能輸入數(shù)字和英文
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7.小數(shù)點(diǎn)后只能有最多兩位(數(shù)字,中文都可輸入),不能輸入字母和運(yùn)算符號(hào):
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8.小數(shù)點(diǎn)后只能有最多兩位(數(shù)字,字母,中文都可輸入),可以輸入運(yùn)算符號(hào):
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
只能是數(shù)字和小數(shù)點(diǎn)和加減乘際
onkeypress="return event.keyCode>=4&&event.keyCode<=57"
總結(jié)
到此這篇關(guān)于input輸入框限制只能輸入數(shù)字的文章就介紹到這了,更多相關(guān)input輸入框限制只輸入數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Elementui如何限制el-input框輸入小數(shù)點(diǎn)
- vue 限制input只能輸入正數(shù)的操作
- vue:el-input輸入時(shí)限制輸入的類(lèi)型操作
- Angular限制input框輸入金額(是小數(shù)的話(huà)只保留兩位小數(shù)點(diǎn))
- 怎么限制input的text里輸入的值只能是數(shù)字(正則、js)
- JS通過(guò)正則限制 input 輸入框只能輸入整數(shù)、小數(shù)(金額或者現(xiàn)金) 兩位小數(shù)
- 使用正則限制input框只能輸入數(shù)字/英文/中文等等
- JS限制input框只能輸入0~100的正整數(shù)的兩種方法
相關(guān)文章
JavaScript中blob對(duì)象和file對(duì)象的區(qū)別及相互轉(zhuǎn)換實(shí)例
在JavaScript中,File和Blob是Web?API提供的兩個(gè)重要對(duì)象,用于處理文件和二進(jìn)制數(shù)據(jù),這篇文章主要介紹了JavaScript中blob對(duì)象和file對(duì)象的區(qū)別及相互轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2025-04-04
javascript函數(shù)自動(dòng)執(zhí)行常用方法匯總
本文給大家匯總介紹了3種javascript函數(shù)自動(dòng)執(zhí)行的常用方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-03-03
ES6知識(shí)點(diǎn)整理之?dāng)?shù)組解構(gòu)和字符串解構(gòu)的應(yīng)用示例
這篇文章主要介紹了ES6知識(shí)點(diǎn)整理之?dāng)?shù)組解構(gòu)和字符串解構(gòu)的應(yīng)用,結(jié)合實(shí)例形式分析了ES6數(shù)組解構(gòu)和字符串解構(gòu)的實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-04-04
layui自己添加圖片按鈕并點(diǎn)擊跳轉(zhuǎn)頁(yè)面的例子
今天小編就為大家分享一篇layui自己添加圖片按鈕并點(diǎn)擊跳轉(zhuǎn)頁(yè)面的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09

