您好,欢迎来到言初情感网。
搜索
您的当前位置:首页vue指令只能输入正数并且只能输入一个小数点的方法

vue指令只能输入正数并且只能输入一个小数点的方法

来源:言初情感网


最近在做一个金额查询,验证的时候总是出现很多问题,如输入-号后,input框里是没有了,但是在model里还是绑定了,提交的时候就会报错,真的是让人很是郁闷,小数点也是input框过滤掉了,但是提交的时候也会出现。不过经过努力终于找到了一种解决方案,在这里``和大家分享一下下。

Vue.directive('numbers', {
 bind: function (el, binding) {
 console.log('ere')
 },
 inserted: function (el) {
 // el.querySelector('input').blur(console.log('etset'))
 },
 update: function (el, binding, vnode, oldVnode) {
 console.log('vnode', vnode)
 let express = vnode.data.directives[1].expression
 // let value = el.querySelector('input').value
 let value = vnode.data.directives[1].value
 if (typeof value === 'string') {} //在重置的时候清空
 if (value.split('.').length - 1 > 1) {
 value = value.replace(/\.{2,}/g, '') // 只保留第一个. 清除多余的
 value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
 }
 let repeatValue = value.replace(/[^\d.]/g, '')
 // setTimeout(() => {
 // el.querySelector('input').value = repeatValue
 // }, 5)
 setValueWithExpressionVue(vnode.context.$data, express, repeatValue)
 },
 componentUpdated: function () {},
 unbind: function (el) {}
})

// 
function setValueWithExpressionVue (currObj, expression, value) {
 expression = expression.split('.')
 expression.forEach(function (arg, i) {
 if (i < expression.length - 1) {
 currObj = currObj[arg]
 } else {
 currObj[arg] = value
 }
 })
}

放到main.js里就好了

言初情感网还为您提供以下相关内容希望对您有帮助:

vue input只能输入正整数

如果按下的键是负号(-)或小数点(.)等不希望出现的字符,则阻止该事件的默认行为,从而避免这些字符被输入到input中。这种方法直接且有效,但需要在每个需要输入的input上都添加相应的事件。封装自定义指令:创建一个自定义指令(如v-Int),该指令负责处理input的键盘事件。在指令的绑定值中,可以定

Vue input 只能输入正整数、数字、英文、两个小数

首先,如果需要输入为数字、英文,可以使用正则表达式来实现。可以通过在input元素上添加事件,利用`@input`方法来验证输入内容。其次,如果需要输入为正整数,可以将输入值转换为数字并进行判断。如果输入的值为负数或非整数,可以使用`v-model`指令将输入值更新为一个合法的正整数。对于...

跪求一段VB代码,textbox只能输入数字,小数点,以及退格,且小数点只能...

假如你的textbox的name为text1那么加入以下代码即可实现你要的功能。Private Sub Text1_KeyPress(KeyAscii As Integer)Select Case KeyAscii Case 8 Case 46 If InStr(Text1, ".") &lt;&gt; 0 Then KeyAscii = 0 Case 47 To 57 Case Else KeyAscii = 0 End Select End Sub ...

vue3项目中给全部input框添加校验

对于特定的输入格式要求,可以使用正则表达式进行校验。例如,对于金额或重量的输入框,可以使用正则表达式来输入的内容只能为数字和特定数量的小数位。4. 在Vue组件中集中管理校验逻辑 对于大型项目,可以在Vue组件中集中管理校验逻辑。例如,在main.ts或类似的入口文件中,为所有的input框添加一个全局的...

...框内只能输入固定位数的数字和一个小数点 如最大为 999999.99_百度...

[\d]{6}\.?[\d]{2} 小数点前必须是6位 小数点后必须是2位的正则 (^[1-9]{1}[0-9]{0,5}\.\d{0,2}$)|(^[1-9]{1}[0-9]{0,5}$) 整数部分1-6位,小数部分只能为2位 若没有小数部分 整数最多6位

只能输入正数和负数的正则表达式

例如,如果你希望用户输入一个包含正数或负数的小数,使用^(\-|\+?)\d+(\.\d+)?$;如果用户只可以输入正数或负数,但不要求输入小数,使用^(\-?)\d+$;如果用户可以输入整数,但不要求输入正数或负数,使用^(\-?)\d+$。通过调整正则表达式的组成部分,可以灵活地满足不同需求,确保数据输入...

Vue2.0+ElementUI实现输入框金额格式化

本文将向你展示如何利用Vue2.0与ElementUI实现输入框金额格式化功能。在实际业务场景中,金额通常需保留到小数点后两位,表示角和分,并且采用逗号作为千位分隔符,便于快速阅读。首先,我们需明白,加了分隔符的金额已转变为字符串类型。在数据库中,金额数据通常定义为数字类型,因此在存储前需进行类型转换...

...怎么限定小数点只能输入一个?怎么限定只能输入数字?运算得出的...

import java.util.Scanner;import java.text.DecimalFormat;public class Rectangle {public static void main(String[] args) {String str;Double width, length, area;// 判断小数条件的正则表达式String regEx = "^([1-9][0-9]*)+(.[0-9]{1,1})?$"; Scanner s = new Scanner(System....

正则表达式验证文本框只能输入数字和小数点

(.\d{1,2})?$:若存在小数点,则以小数点后的一至两位小数结尾 在页面中写一个输入框和点击按钮,测试校验是否成功:浏器F12打开控制台查看效果:在这里入图片描述 可以看到输入框输入1.后正常检验是false,然而如果在浏览器中输入校验规则和字符串则不然:在这里入图片描述 如果输入个带小数点的...

qt的textedit怎么设置只能输入字母数字,并且两个字符后必须要打个空格...

在Qt中,若要使QTextEdit只能输入字母和数字,并且每输入两个字符后必须输入一个空格才能继续输入数字或字母,最直接的方法是重载QTextEdit的keyPressEvent(QKeyEvent *event)函数。具体实现步骤如下:在重载的keyPressEvent函数中,首先获取当前输入的字符,然后检查该字符是否为字母或数字。如果是,则继续检查...

Copyright © 2019- yctq.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务