限制input輸入小數只能到3位或者只能輸入正整數(兼容ios)

咱們在作表單輸入時,有時候對於有些輸入比較有限制,好比輸入天數必須爲正整數,再好比有些特殊需求須要輸入保留小數點的後面n位。那麼咱們如何在輸入環節就限制用戶的輸入狀況呢?javascript

咱們能夠用正則表達式來限制。java

限制input輸入數字只能輸入正整數(包括0)

<input type="number" class="weight-input" 
       oninput="this.value=this.value.replace(/\D/g,'');" 
       pattern="[0-9]*"> &nbsp; 天

解析ios

  1. oninput事件在用戶輸入時觸發,元素值發生變化時當即觸發。
  2. D爲非數字,this.value爲input輸入的值,當輸入的值不爲數字的時候,就替換成空字符串。
  3. 加上pattern="[0-9]*",是爲了適應蘋果ios系統。

限制input輸入數字只能輸入正整數(不包括0)

<input type="number" class="weight-input"  min="1"
  oninput="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/,'')}else{this.value=this.value.replace(/\D/g,'')}"  pattern="[1-9][0-9]*"> &nbsp; 天

解析正則表達式

  1. min=1限制對於輸入是沒有用的,可是對於type="number"類型的上下點擊選擇仍是有限制做用的,若是正則表達式寫的完善的話,min=1也能夠不加。
  2. oninput是一個事件,因此事件裏面是能夠寫js代碼的。

限制input輸入數字只能輸入小數點最多到第三位的數字

<input type="number" class="weight-input" min="0.000"  oninput="this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,3})\d*/,'$1$2$3')" pattern="[0-9]*\.?[0-9]{0,3}">
  1. /D(d)(.?)(d{0,3})d*/解析:加上括號即爲分組,分組從左到右分別用$1,$2,$3來表示,每一個括號爲一組。只保留組裏面的內容,輸入的其餘內容都給過濾掉。
  2. pattern="[0-9]*.?[0-9]{0,3}"是爲了適應蘋果ios系統
相關文章
相關標籤/搜索