Vue ElementUI实现:限制输入框只能输入正整数的问题


Posted in Javascript onJuly 31, 2020

input输入框中禁止输入小数和负数(*只允许输入正整数 *)

最近在做项目中碰见了这么个问题,需要输入数字,但是只能输入正整数,在网上找的没找到自己想要的,所以就自己想了两个办法,在这里跟大家分享一下。(因为是刚毕业,第一次写博客,所以有点生疏,请各位大佬担待一些)

方法一:利用禁止按键的方法,主要是依靠禁止按下减号以及小数点来完成的

Vue ElementUI实现:限制输入框只能输入正整数的问题

首先要监听keyup(键盘按下)事件,因为elementUi上面的input组件监听事件是没有这个事件的,所以可能会报错,所以我们需要加个vue事件的修饰符 .native,代表原生事件的意思。

然后我们传个$event对象进去来获取原生的DOM(可以简单理解为触发事件的本身)

接下来就是在methods中写这个函数了

Vue ElementUI实现:限制输入框只能输入正整数的问题

具体的意思我已经写在上面了,按下键后,可以自己弹出一下keynum和keychar所代表的的字符或者键盘码,根据哪个判断都可以,我选择使用键盘码来判断进入判断后我们就可以做交互了,最后我选择清掉用户所输入的数据。

方法二:利用正则表达式来规避掉小数点和负数

Vue ElementUI实现:限制输入框只能输入正整数的问题

在这里呢使用的就是elementUI的事件了,我们监听一下失去焦点的时候要触发事件,同样的我们要传入进去$event参数

methods中编写函数

Vue ElementUI实现:限制输入框只能输入正整数的问题

这里使用的正则的意思代表的是(针对没有接触过正则的同学,会的大佬们看看有什么错误没):

首先我们先看开头的^和结尾的$这里分别代表匹配字符串的开头以及匹配字符串的结尾,而[1-9]是代表的是匹配1-9其中的数字,所以会过滤掉负数和小数,同时要求开头必须要以1开头,后面的则是匹配以0-9结尾的数字,而*代表的是0次或多次,也就是不限制结尾的数字,合起来的意思就是:我们匹配从1-9中的某个数开头,并且以0-9中的某个数结尾的匹配。

最后呢,就是做的判断了,如果符合我们所定义的正则就不用提示错误了,如果不符合呢,就会提示错误,同时清空数据

下面这些内容是后追加的:

方法三:利用ES6语法includes来规筛掉 . 和 -

1.获取到输入框的值,对输入框内容进行检索

var inputText = document.querySelector('#inputText')

 inputText.addEventListener('input', function(){
  if( this.value.includes('.')){
   console.log('不能输入小数点')
  }else if(this.value.includes('-')){
   console.log('不能输入负数')
  }else{
   console.log('正常')
  }
 })

方法四:利用正则匹配出 . 或者 -

方法是和方法二一样的,但是正则表达式则是:/^\d+\.\d$/

附上两个实例:

let regx = /^\d+\.\d+$/;
let num_two = 1.252;
const newNum_two = regx.test(num_two)
console.log(newNum_two)

解释:

/^d+:以任意一个数字开头 +:出现一次或多次

\.:第二位为小数点

\d+$ :以任意一个数字结尾并且出现一次或多次

let regx_two = /^\-\d\.?\d*$/;
let num_three = -2.53;
const newNum_three = regx_two.test(num_three)
console.log(newNum_three)

解释:

/^\-:以 - 号 开头

\d:第二位肯定是个数字

\.:第三位可能会出现0次或者1次的 .

\d* 以数字 结尾出现0次或多次(这样就可以如果输入的单单是-2的话,也能匹配到)

OK分享到此结束,如果我之后还有什么办法,再来分享给大家,希望能给大家一个参考,也希望大家多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 复制数组实现代码
Nov 26 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
JQuery弹出层示例可自定义
May 19 Javascript
Javascript中With语句用法实例
May 14 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
jQuery插件pagination实现无刷新分页
May 21 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
node版本管理工具n包使用教程详解
Nov 09 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 #Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 31 #Javascript
vue实现给div绑定keyup的enter事件
Jul 31 #Javascript
简单了解JavaScript作用域
Jul 31 #Javascript
基于vue--key值的特殊用处详解
Jul 31 #Javascript
javascript开发实现贪吃蛇游戏
Jul 31 #Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
Jul 31 #Javascript
You might like
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
php 常用的系统函数
2017/02/07 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
微信小程序 五星评分的实现实例
2017/08/04 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Python 自动补全(vim)
2014/11/30 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
绘画专业自荐信
2014/07/04 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
食品安全演讲稿
2014/09/01 职场文书
五好家庭申报材料
2014/12/20 职场文书
个人汇报材料范文
2014/12/30 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers