最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue如何設(shè)置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號

 更新時間:2024年05月24日 10:19:21   作者:沐卿?  
這篇文章主要介紹了vue如何設(shè)置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue設(shè)置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號

<el-input v-model.trim="sb.price" placeholder="現(xiàn)價" class="input_w3"  oninput="value=value.replace(/[^0-9.]/g,'').replace(/\.{2,}/g,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"/>

限制只能輸入1到100,且只能輸入小數(shù)點后二位

<el-input v-model="params.tongZhengPercentage" type="number" placeholder="店鋪抽成占比"   oninput="if(!/^[0-9]+$/.test(value)) value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); if(value>100)value=100;if(value<0)value=null;if(value<0)value=null;if((value[0] == 0 && value[1] > 0) || value == '00')value=value.slice(1);"/>
								

只能輸入1到100

<el-input 
    v-model="num" type="number" placeholder="請輸入"   
    oninput="if(!/^[0-9]+$/.test(value)) 
                 value=value.replace(/\D/g,'');
             if(value>100)
                 value=100;
             if(value<0)
                 value=null" 
/>

嘎嘎簡單、、、、、、、、、

vue只能輸入數(shù)字和倆位小數(shù)的自定義指令

/**
 * 限制輸入框只能輸入n為小數(shù)
 */
export const inputLimt = {
  bind(el, binding) {
    var wins_0 = /[^\d]/g //整數(shù)判斷
    var wins_1 = /[^\d^\.]/g //小數(shù)判斷
    var flag = true;
    var points = 0;
    var lengths = 0
    var remainder = 0
    var no_int = 0
    const target = el instanceof HTMLInputElement ? el : el.querySelector("input");
    target.addEventListener("compositionstart", e => {
      flag = false;
    });
    target.addEventListener("compositionend", e => {
      flag = true;
    });
    target.addEventListener("input", e => {
      setTimeout(function () {
        if (flag) {
          if (binding.value == 0) {
            if (wins_0.test(e.target.value)) {
              e.target.value = e.target.value.replace(wins_0, "");
              e.target.dispatchEvent(new Event("input")) //手動更新v-model值
            }
          }
          if (binding.value == 1) {
            if (wins_0.test(e.target.value.toString().replace(/\d+\.(\d*)/, '$1'))) {
              remainder = true
            }
            if ((e.target.value.split('.')).length - 1 > 1) {
              points = true
            }
            if (e.target.value.toString().split(".")[1] != undefined) {
              if (e.target.value.toString().split(".")[1].length > 1) {
                lengths = true
              }
            }
            if (e.target.value.toString().indexOf(".") != -1) {
              no_int = false
            } else {
              no_int = true
            }
            if (wins_1.test(e.target.value) || lengths || points || remainder) {
              if (!no_int) {
                e.target.value = e.target.value.replace(wins_1, "").replace('.', '$#$').replace(/\./g, '').replace(
                    '$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').substring(0, e.target.value.indexOf(
                    ".") + 2)
              } else {
                e.target.value = e.target.value.replace(wins_0, "")
              }
              e.target.dispatchEvent(new Event("input"))
            }
          }
          if (binding.value == 2) {
            if (wins_0.test(e.target.value.toString().replace(/\d+\.(\d*)/, '$1'))) {
              remainder = true
            }
            if ((e.target.value.split('.')).length - 1 > 1) {
              points = true
            }
            if (e.target.value.toString().split(".")[1] != undefined) {
              if (e.target.value.toString().split(".")[1].length > 2) {
                lengths = true
              }
            }
            if (e.target.value.toString().indexOf(".") != -1) {
              no_int = false
            } else {
              no_int = true
            }
            if (wins_1.test(e.target.value) || lengths || points || remainder) {
              if (!no_int) {
                e.target.value = e.target.value.replace(wins_1, "").replace('.', '$#$').replace(/\./g, '').replace(
                    '$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').substring(0, e.target.value.indexOf(
                    ".") + 3)
              } else {
                e.target.value = e.target.value.replace(wins_0, "")
              }
              e.target.dispatchEvent(new Event("input"))
            }
          }
        }
      }, 0)
    })
  }
}

main.js

Vue.directive('inputLimit',inputLimt)

使用

  <el-input  v-input-limit="2"
                      v-model="popAddOrEditDialog.form.ratio" placeholder="請輸入服務(wù)比例">
            </el-input>

vue輸入框只能輸入數(shù)字類型,禁止輸入和粘貼e

js怎么去除1e里面e 

方法一:使用 Number() 函數(shù)將科學(xué)計數(shù)法表示的字符串轉(zhuǎn)換為數(shù)字。然后,使用 toString() 方法將其轉(zhuǎn)換回字符串形式,這樣就會自動移除科學(xué)計數(shù)法中的 "e"

var num = 1e10; // 科學(xué)計數(shù)法表示的數(shù)字
var numStr = Number(num).toString(); // 轉(zhuǎn)換為字符串,自動移除 "e"
console.log(numStr); // 輸出 "10000000000"

方法二:使用正則表達(dá)式替換方法移除科學(xué)計數(shù)法中的 "e"。

var num = 1e10; // 科學(xué)計數(shù)法表示的數(shù)字
var numStr = num.toString().replace("e", ""); // 使用 replace 方法替換 "e" 為空字符串 console.log(numStr); // 輸出 "10000000000"

vue中限制長度以及數(shù)字(包括e) 

// 封裝方法--只允許輸入正數(shù)包 
export function getNum(val) { 
  // 先把非數(shù)字的都替換掉,除了數(shù)字 
  val = Number(val).toString().replace(/[^\d]/g, '') 
  return val 
}

<el-input
  type="number"
  v-model.trim="ruleForm.height"
  clearable
  placeholder="請輸入數(shù)字"
  οnkeydοwn="return event.keyCode !== 69"
  @input="changeNumber('height',ruleForm.height,8)"
/>
changeNumber(name, obj, len = 8) {
  const t = obj.length > len ? obj.slice(0, len) : obj
  this.$set(this.ruleForm, name, getNum(t))
}

vue中自動保存兩位小數(shù) 

// 封裝方法--只允許輸入數(shù)字包含小數(shù)點
export function getFloorNumber(val, saveNumber = 2) {
  // 先把非數(shù)字的都替換掉,除了數(shù)字
  val = val.replace(/[^\d.]/g, '')
  val = val.replace(/\.{2,}/g, '.')
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  const index = val.indexOf('.')
  if (index != -1) {
    const arr = val.split('.')
    if (arr[1].length > saveNumber) {
      arr[1] = arr[1].substr(0, saveNumber)
    }
    val = arr.join('.')
  }
  return val
}
<el-input
  v-model="ruleForm.sharedArea"
  placeholder="請?zhí)顚懨娣e"
  clearable
  @input="changeSpliceArea('area')"
  @blur="changeArea('area')"
/>
changeSpliceArea(name, len = 8) {
  this.ruleForm[name] = getFloorNumber(this.ruleForm[name])
  if (this.ruleForm[name].length >= len) {
    this.ruleForm[name] = this.ruleForm[name].substr(0, len)
  }
},
changeArea(name) {
  const t = this.ruleForm[name] && this.ruleForm[name].charAt(this.ruleForm[name].length - 1)
  if (t == '.') {
    this.ruleForm[name] += '00'
  }
}

常用工具方法

// 只允許輸入數(shù)字包含負(fù)數(shù)
export function getNumber(val) {
  const t = val.charAt(0)
  // 先把非數(shù)字的都替換掉,除了數(shù)字
  val = val.replace(/[^\d]/g, '')
  // 如果第一位是負(fù)號,則允許添加
  if (t === '-') {
    val = '-' + val
  }
  return val
}

// 只允許輸入正數(shù)包
export function getNum(val) {
  // 先把非數(shù)字的都替換掉,除了數(shù)字
  val = Number(val).toString().replace(/[^\d]/g, '')
  return val
}

// 只允許輸入數(shù)字包含小數(shù)點
export function getFloorNumber(val, saveNumber = 2) {
  // 先把非數(shù)字的都替換掉,除了數(shù)字
  val = val.replace(/[^\d.]/g, '')
  val = val.replace(/\.{2,}/g, '.')
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  const index = val.indexOf('.')
  if (index != -1) {
    const arr = val.split('.')
    if (arr[1].length > saveNumber) {
      arr[1] = arr[1].substr(0, saveNumber)
    }
    val = arr.join('.')
  }
  return val
}
// 只允許輸入數(shù)字包含小數(shù),不限制長度
export function getFloorNumNoLength(val) {
  const t = val.charAt(0)
  if (t === '.') {
    return val.replace('.', '')
  }
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  // 先把非數(shù)字的都替換掉,除了數(shù)字
  val = val.replace(/[^\d.]/g, '')
  return val
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中pdf.js的使用之pdf顯示、跳轉(zhuǎn)指定頁面及高亮關(guān)鍵詞

    vue中pdf.js的使用之pdf顯示、跳轉(zhuǎn)指定頁面及高亮關(guān)鍵詞

    pdf.js是由Mozilla基金會開發(fā)的一個純JavaScript庫,用于在Web瀏覽器中顯示PDF文檔,這篇文章主要介紹了vue中pdf.js的使用之pdf顯示、跳轉(zhuǎn)指定頁面及高亮關(guān)鍵詞的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • Vue通過封裝全局獲取焦點指令

    Vue通過封裝全局獲取焦點指令

    這篇文章主要為大家詳細(xì)介紹了Vue通過封裝全局獲取焦點指令的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考下
    2023-12-12
  • 關(guān)于Vue中keep-alive的作用及使用方法

    關(guān)于Vue中keep-alive的作用及使用方法

    keep-alive是Vue的內(nèi)置組件,當(dāng)它包裹動態(tài)組件時,會緩存不活動的組件實例,該組件將不會銷毀,這篇文章主要介紹了關(guān)于Vue中keep-alive的作用是什么?怎么使用,需要的朋友可以參考下
    2023-04-04
  • Vue 遞歸多級菜單的實例代碼

    Vue 遞歸多級菜單的實例代碼

    這篇文章主要介紹了Vue 遞歸多級菜單的實例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Vue OptionsAPI與CompositionAPI的區(qū)別與使用介紹

    Vue OptionsAPI與CompositionAPI的區(qū)別與使用介紹

    OptionsAPI和CompositionAPI是Vue.js框架中兩種不同的組件編寫方式,OptionsAPI通過對象字面量定義組件,以屬性分隔不同功能,響應(yīng)式數(shù)據(jù)通過data屬性定義,本文給大家介紹Vue OptionsAPI與CompositionAPI的區(qū)別,感興趣的朋友一起看看吧
    2024-10-10
  • vue19 組建 Vue.extend component、組件模版、動態(tài)組件 的實例代碼

    vue19 組建 Vue.extend component、組件模版、動態(tài)組件 的實例代碼

    這篇文章主要介紹了vue19 組建 Vue.extend component、組件模版、動態(tài)組件 的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 創(chuàng)建項目及包管理yarn create vite源碼學(xué)習(xí)

    創(chuàng)建項目及包管理yarn create vite源碼學(xué)習(xí)

    這篇文章主要為大家介紹了創(chuàng)建項目及包管理yarn create vite源碼學(xué)習(xí)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vue3封裝自己的分頁組件

    vue3封裝自己的分頁組件

    這篇文章主要為大家詳細(xì)介紹了vue3封裝自己的分頁組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue3+El-Plus實現(xiàn)表格行拖拽功能完整代碼

    Vue3+El-Plus實現(xiàn)表格行拖拽功能完整代碼

    在vue3+elementPlus網(wǎng)站開發(fā)中,詳細(xì)完成el-table表格的鼠標(biāo)拖拽/拖曳/拖動排序,下面這篇文章主要給大家介紹了關(guān)于Vue3+El-Plus實現(xiàn)表格行拖拽功能的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 關(guān)于Echarts餅圖圖例太長的解決方案

    關(guān)于Echarts餅圖圖例太長的解決方案

    這篇文章主要介紹了關(guān)于Echarts餅圖圖例太長的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

高唐县| 永川市| 荆州市| 克山县| 谢通门县| 新和县| 孟村| 靖州| 临城县| 南漳县| 双鸭山市| 徐水县| 阳朔县| 招远市| 鞍山市| 舞钢市| 长治县| 五华县| 永福县| 山西省| 达州市| 天等县| 肥乡县| 闸北区| 德钦县| 株洲市| 大安市| 涿鹿县| 肥东县| 株洲县| 和顺县| 红原县| 大足县| 正安县| 荣成市| 五指山市| 辽阳县| 台中县| 台南县| 札达县| 小金县|