支持

弹出数字键盘

小数点前自定义最多输入几位(默认11位)

小数点后自定义最多输入几位(默认4位)

如果设置小数点后为0位,则不允许输入小数点

解决IOS弹出系统键盘收起后,页面不恢复

ref="number"

@input="input"

:placeholder="placeholder"

:value="value"

@blur="blur"

type="number">

export default {

props: {

value: { // 设置值

default: '',

type: null

},

integerDigits: { // 小数点前几位

default: 11,

type: Number

},

decimalDigits: { // 小数点后几位

default: 4,

type: Number

},

placeholder: { // 设置默认值

default: '',

type: String

}

},

data () {

return {

oldValue: this.value,

isDel: false, // 是否是删除操作

isDot: false // 是否是小数点输入操作

}

},

computed: {

},

components: {

},

created () {

},

methods: {

input (event) {

this.isDel = false

this.isDot = false

if (event.data === null) this.isDel = true

if (event.data === '.') this.isDot = true

let reg

if (this.decimalDigits > 0) {

reg = new RegExp(`(?!^0\\d)^(\\d{1,${this.integerDigits}}(\\.\\d{0,${this.decimalDigits}})?)?$`, 'g')

} else {

reg = new RegExp(`(?!^0\\d)^(\\d{1,${this.integerDigits}})?$`, 'g')

}

if (reg.test(event.target.value)) {

if (event.target.value !== '' || this.isDel) { // 如果不是因为后退,让值变空,就不改变旧值

this.oldValue = event.target.value

}

}

if (this.isDot) {

if ((event.target.value && /\./g.test(event.target.value)) || this.decimalDigits === 0) {

event.target.value = null // 多余的.强制刷新

}

}

event.target.value = this.oldValue

this.$emit('input', this.oldValue)

},

blur () {

this.resolveBug()

},

resolveBug(){

clearTimeout(this.timer)

this.timer=setTimeout(function(){

if(document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA'){

return

}

let result = 'pc';

if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { // 判断iPhone|iPad|iPod|iOS

result = 'ios'

}else if(/(Android)/i.test(navigator.userAgent)) { // 判断Android

result = 'android'

}

if(result === 'ios' ){

document.activeElement.scrollIntoViewIfNeeded(true);

}

},10)

}

}

}

使用方式

:integerDigits="4"

:decimalDigits="2"

class="input"

v-model="value"/>

解决点:

不允许输入类似于 "0666", "0006"

不允许输入多余的 ".", 如输入 "3.02."

备注:如果对你有帮助,请帮忙点个赞

vue 保留小数点厚一位_h5上完美支持自定义输入小数点前多少位和小数点后多少位(vue)...相关推荐

  1. 金额保留小数点后两位方法

    vue金额格式化的方法 封装全局js文件,并在main.js中引用 //global.js export default {install(Vue) {Vue.prototype.$moneyForm ...

  2. 前端保留两位有效数字_用js取小数点后两位的一些方法

    用js取小数点后两位的一些方法,了解下? Javascript取float型小数点后两位,例22.123456取成22.12,如何做? 1.通过substring截取.function getnum( ...

  3. php保留一位小数_php保留小数点后两位的几种方法

    这个是比较基础的东西了算是,虽说不难,但是希望能对一些人有帮助吧: 1,经常用到小数点后取几位,但不能进位的情况. 比如3.149569取小数点后两位,最后两位不能四舍五入.结果:3.14. 可以使用 ...

  4. php 小数点后6位,PHP保留小数点后几位的三种方法

    php小数点后取两位/多位的方法. 方法一.经常用到小数点后取几位,但不能进位的情况. 比如3.149569取小数点后两位,最后两位不能四舍五入.结果:3.14. 可以使用函数floor. 该函数是舍 ...

  5. 经纬度5位数和6位数差多少_经纬度小数点后5位是多少米 经纬度小数点后4位精确到...

    一般情况下,约1米精度. 经纬度坐标数值,不管小数度.还是度分秒(二者实质相同),都是角度数值,跟米.公里等距离单位不能进行简单折算,但可以分具体情况.比如: 经度0.00001度(十万分之一度,0° ...

  6. python小数点后任意位_Python计算开方、立方、圆周率,精确到小数点后任意位的方法...

    Python计算的位数 在电脑上做了一个实验,看看python能计算到多少位,一下是结果. x = math.sqrt((3)) print ("%.53f"%(x)) print ...

  7. Python计算开方、立方、圆周率,精确到小数点后任意位

    Python计算的位数 在电脑上做了一个实验,看看python能计算到多少位,一下是结果. x = math.sqrt((3)) print ("%.53f"%(x)) print ...

  8. C语言对浮点数变量小数点后两位的四舍五入

    一般有两种方法,以变量a = 2.55为例说明 1.将a(2.55)放大10倍得到b(25.5),+0.5得到c(26.0),然后除以10得到d(2.60). 2.将a(2.55)放大100倍得到b( ...

  9. 格式化输出,浮点数e,f,g保留位数的计算方式不同,e,f :%.3e/f:取小数点后三位,g:%.3g总共有效位数为3,不包括小数点

    格式化输出:format() format():把传统的%替换为{}来实现格式化输出 使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,位置 ...

最新文章

  1. IDEA JAVA gradle等常见工具/包 踩坑记录
  2. 基于ThinkPHP框架下登录登出权限控制(一).
  3. 以太网迎新增长 专家眼中的车载以太网及AVB技术
  4. Guava关于JAVA中系统组件之间交互通讯(非线程之间通讯)
  5. Ansible script模块使用示例
  6. html遮罩实例,给原生html中添加水印遮罩层的实现示例
  7. ABAP document read logic
  8. 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
  9. java向上转型不能调用子类独有的方法
  10. javascript一些基础知识
  11. vue官方webpack模版多个打包环境搭建
  12. Mac和iPhone之间如何设置通用剪贴板?
  13. springboot开发微信公众号(一)创建、查询、删除菜单(附源码)
  14. 我写了一份操作系统词典送给你!
  15. 【阿里—云计算】从飞天系统到飞天2.0(核心组成:飞天洛神)
  16. 从零开始的单片机学习(二)
  17. 墨盒和墨仓打印机区别?
  18. win10打开计算机代码,win10打开应用提示0xe06d7363错误代码
  19. Windows10家庭版彻底关闭HyperV
  20. python降低图片分辨率怎么调_使用PIL调整图片分辨率

热门文章

  1. 【BZOJ2655】calc,dp+拉格朗日插值法
  2. 【BZOJ2151】种树,贪心+Splay乱搞
  3. 队列C++ | 用链表实现队列_2
  4. 中职计算机应用基础微课获奖视频,浅谈微课在中职计算机应用基础教学中的应用...
  5. java spi与api,SPI和API之间的区别?
  6. bzoj1923 [Sdoi2010]外星千足虫 压位+高斯消元
  7. 2017.10.10 取石子游戏 失败总结
  8. win7为什么打开桌面上的计算机很卡很慢,Win7系统运行不流畅卡半天才进入桌面的六种解决方法...
  9. 【英语学习】4000 Words 【V1】【U02】The Laboratory
  10. Intel Skylake (Client) 架构/微架构/流水线 (2) - 前端