1. 程式人生 > >限制input只能輸入數字且限制只能輸入兩位小數

限制input只能輸入數字且限制只能輸入兩位小數

  • chrome中的input不要加type=”number”,有問題,輸入負號擷取到第一個字串是空,就預設text就行
  • 若允許負數加上allowMinus類,正數只加limitNumber
  • 以下可以封裝成函式,加到DOM上的onkeyup=foo(this)
    $(document).on('keyup', '.limitNumber,.allowMinus', function (e) {
      //修復第一個字元是小數點 的情況. 
      let fa = ''
      if (this.classList.contains('allowMinus')) { //或者$(this).hasClass('allowMinus')
this.value.substring(0, 1) === '-' && (fa = '-') } if (this.value !== '' && this.value.substr(0, 1) === '.') { this.value = ""; } this.value = this.value.replace(/^0*(0\.|[1-9])/, '$1');//解決 貼上不生效 console.log(this.value) this.value = this.value.replace(/[^\d.]/g
, ""); //清除“數字”和“.”以外的字元 this.value = this.value.replace(/\.{2,}/g, "."); //只保留第一個. 清除多餘的 this.value = this.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); this.value = this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能輸入兩個小數 if (this.value.indexOf(".") < 0
&& this.value !== "") {//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似於 01、02的金額 if (this.value.substr(0, 1) === '0' && this.value.length === 2) { this.value = this.value.substr(1, this.value.length); } } this.value = fa + this.value })

以下是自己寫的方法,比較呆,已放棄, 採用上述方法

$(document).on('keydown', '.limitNumber,.allowMinus', function (e) {
    //8 = backspace;45=insert;46=delete;189 = '-';110小鍵盤.
      if(this.classList.contains('allowMinus')){
        if(e.keyCode === 189){
          return false
        }
      }
    if (e.keyCode !== 110 && e.keyCode !== 190 && e.keyCode !== 8 && e.keyCode !== 46 && e.keyCode !== 45 && (e.keyCode < 48
        || (e.keyCode > 57 && e.keyCode < 96) || e.keyCode > 110)) {
      return false
    }
  })
    .on('keyup', '.limitNumber', function (e) {
      let fa = ''
      if(this.classList.contains('allowMinus')){
        this.value.substring(0, 1) === '-' && (fa = '-')
      }
      this.value = this.value.replace(/[^\x00-\x80]/gi, '')
      //[^0-9.] 匹配不是數字和小數點的字元
      //[.][0-9]*[.] 匹配第一個小數點之後的數字,若多寫小數點則歸位到第一個小數點位置
      let str = (this.value.replace(/[^0-9.]/g, '')).replace(/.][0-9]*[.]/, '.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')
      str.substring(0, 1) === '.' && (str = '0' + str)
      this.value = fa + str
    })

相關推薦

限制input只能輸入數字限制只能輸入小數

chrome中的input不要加type=”number”,有問題,輸入負號擷取到第一個字串是空,就預設text就行 若允許負數加上allowMinus類,正數只加limitNumber 以下可以封裝成函式,加到DOM上的onkeyup=foo(this)

android editText 控制輸入最大值、保留小數、保留小數點前面位數

常用方案: 1.在editText的監聽addTextChangedListener中邏輯判斷 2.使用editText的setFilters(new InputFilter[]),設定輸

JQ設定input只能輸入數字限制個數

<input type="text" name="CreatorName" id="CreatorName" value="" maxlength='4'> //給input設定只能輸入數字,如果是非數字會自動刪掉 $("#CreatorName").keyup(functi

input只能輸入數字限制長度

/*在谷歌下移除input[number]的上下箭頭*/ .regis_box input[type='number']::-webkit-outer-spin-button, .regis_box i

js jquery 限制input輸入只能輸入小數數字

//正整數 兩位小數 $('.inputWrap').on('input', function () { var num = $(this).val(); if(n

JS只能輸入數字限制長度的實用程式碼

$("input[name='deal_days']").bind("keyup blur",function(){if($.trim($(this).val())==''||isNaN($(this).val())||parseInt($(this).val())<

JS通過正則限制 input 輸入只能輸入整數、小數(金額或者現金) 小數

第一: 限制只能是整數 ? 1 <input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.t

input標籤只能輸入數字小數點 小數點後只有 ,不允許存在個小數點!!

$("#open").on('keyup', function (event) {    var $amountInput = $(this);   var tmptxt=$(this).val();   //$(this).val(tmptxt.subString(0,

Android 限制EditText只能輸入數字限制輸入型別、限制輸入長度的小技巧

準確的說讓Edittext只能輸入數字有方法兩種,都是通過xml屬性設定 方法一: <EditText            android:id="@+id/u_account"            android:layout_width="0dp"

html input驗證只能輸入數字,不能輸入其他

ron display 只能輸入數字 ack top tom height tro radi html input驗證只能輸入數字,不能輸入其他 此方法為借鑒別人的,在此只做記錄。 <input type="text" onkeyup="if(!/^\

jquery控制input只能輸入數字小數

jQuery 程式碼: function num(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除"數字"和"."以外的字元 obj.value = obj.value.replace(/^\./g,"");

jquery控制input只能輸入數字小數(轉)

知識點一 直接上程式碼: function num(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除"數字"和"."以外的字元 obj.value = obj.value.replace(/^

只能輸入數字或含小數的正則

var reg=/^\d+(\.\d{0,2})?$/; \d:首位必須是數字 +拼接後面的 ()拼接的內容 \.挨著必須是小數點 \d小數點後面必須是數字 {0,2}兩位有效數字 $:匹配任何結尾為之前所寫的字串   即 小數點和兩位小數 親測有效 reg.tes

輸入框只允許輸入數字並且限制小數點位數

<input type="text" onkeyup="this.value=this.value.toString().match(/^\d+(?:\.\d{0,2})?/)"/>onkeyup 事件會在鍵盤按鍵被鬆開時發生。match() 方法可在字串內檢索指

正則表示式--限制input輸入0~1之間的小數,含0,1,最多小數

一個簡單的正則表示式,工作中可能經常用到,限制字串的輸入、數字的輸入,這些用一個onkeyup就解決了,如:onkeyup="value=value.replace(/[^\d]/g,'') //限制輸入數字 最近有個小需求,限制輸入框輸入費率,要求:只能輸入0-1之間的小

JS驗證輸入只能輸入數字,並且只能含有2小數

<script language="JavaScript" type="text/javascript"> //輸入框只能輸入數字,並且只能含有2為小數 function clearNoNum(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); /

限制 EditText 最多輸入小數

為了美觀,先限制一下 android:inputType="numberDecimal" android:maxLength="9" 1.要求與思路 細節要求: 以小數點開頭,前面自動加上

限定EditText只能輸入小數種方式

/** * 限定EditText只能輸入最多兩位小數 * @author Administrator * */ public class MainActivity extends ActionBarActivity { private EditText num_et; private EditT

控制輸入只能輸入小數和一個小數點

在專案中會對輸入框中的輸入值實時控制小數位,限制使用者只能輸入兩位小數,一個小數點.$(obj).bind("input onInput",function(){ var value =

input輸入框匹配數字(帶小數) js--金額匹配

input輸入框匹配兩位小數的金額,超過部分或者其他非數字和小數點字元不顯示,小數點只能輸入一次,第二次不能輸入,程式碼: <input type="text" onkeyup="checknum(this);"/> <script type