对input输入框做日期输入限制的几种方法

用户输入一个日期的时候,我们如何对其做一个输入限制呢?试想一下,如果你输入一个13月份出来,直接弹框提醒你,会觉得冗余界面复杂,我们可以直接清掉这个3。此外,假如我们希望别人输入的日期格式如下:2024.01.12时,应该如何来规定呢?

QQ录屏20240112102820

首先,我们第一个想到的应该是使用正则来匹配

   const regex = /^\d{4}\.\d{2}\.\d{2}$/;

除了正则外,想达到一个边输入边验证输入是否合法的效果,使用事件和监听来做。

1.首先写一个input输入框,v-model绑定一个值,对input使用@input事件。

 <el-input v-model="baseData.recTime"  placeholder="不填写则为系统默认时间"@input="validateAndFormatDateInput"></el-input>

 2.判断哪些位是小数点,哪些位是数字,当然这儿我限制的并不完全,比如说第九位不能大于3,第九位为3时,第十位不能大于1。这里只是给大家做一个参考:

 validateAndFormatDateInput() {// 获取输入框的值let inputValue = this.baseData.recTime || '';// 一边输入一边判断if ((inputValue.length === 5 && inputValue[4] !== '.') ||  // 第五位不是小数点(inputValue.length === 8 && inputValue[7] !== '.') ||  // 第八位不是小数点(inputValue.length === 1 && isNaN(parseInt(inputValue[0]))) ||// 第一位不是数字(inputValue.length === 2 && isNaN(parseInt(inputValue[1]))) ||(inputValue.length === 3 && isNaN(parseInt(inputValue[2]))) ||(inputValue.length === 4 && isNaN(parseInt(inputValue[3]))) ||(inputValue.length === 6 && parseInt(inputValue[5]) > 1) ||  // 第六位大于1(inputValue.length === 9 && parseInt(inputValue[8]) > 3)  // 第九位大于3) {// 不符合条件,移除最后输入的字符this.baseData.recTime = inputValue.slice(0, -1);}// 只保留符合格式的字符this.baseData.recTime = this.baseData.recTime.replace(/[^\d.]/g, '');}

 除此外使用watch来监听:

 "baseData.recTime": {handler(newVal, oldVal) {console.log(newVal, oldVal);if ((oldVal + "").length > (newVal + "").length) {return;}clearTimeout(this.watchTimer);this.watchTimer = setTimeout(() => {this.baseData.recTime = newVal.replace(/[^\d\.\s]/g, "");let _value = newVal.replace(/[^\d.]/g, "") + ""; //去掉除开数字和小数点console.log(_value);this.baseData.recTime = _value;if (_value == 0) {this.baseData.recTime = "";return;}if (_value.length <= 4) {let _len = _value.length;if ((_value.replace(/\D/g, "") + "").length != _len) {this.baseData.recTime = _value.replace(/\D/g, "");return;}if (_value.length == 4) {this.baseData.recTime = _value + ".";}}if (_value.length > 4) {let _stepValue1 = _value.slice(0, 4);let _len = _stepValue1.length;if ((_stepValue1.replace(/\D/g, "") + "").length != _len) {this.baseData.recTime = _stepValue1.replace(/\D/g, "");return;}if (_value.length == 5) {if (_value[4] != ".") {this.baseData.recTime = _value.slice(0, 4);return;}}if (_value.length > 5) {if (_value[5] != "1" && _value[5] != "0") {this.baseData.recTime = _value.slice(0, 5);return;}if (parseInt(_value[6]) > 2 && _value[5] == "1") {this.baseData.recTime = _value.slice(0, 6);return;}if (_value.length > 7) {this.baseData.recTime = _value.slice(0, 7);return;}}}}, 100);},immediate: false,deep: true},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用原生input模拟器样式正常,但是真机上 input框溢出

目录 一、问题 二、解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.使用原生input写了一个搜索框&#xff0c;在模拟器和pc上一切正常。但是打包放到手机上&#xff0c;样式就有问题&#xff1a;这个搜索框的布局是正常的&#xf…

广州银行IPO再添堵:原董事长被查,资产质量承压,罚单频现

撰稿|行星 来源|贝多财经 广州银行的上市之路&#xff0c;或因前高管涉嫌违纪再添一层阴云。 前不久&#xff0c;广州市纪委监委披露的信息显示&#xff0c;广州银行原党委书记、董事长姚建军涉嫌严重违纪违法&#xff0c;正在接受纪律审查和监察调查。据贝多财经了解&#…

代码随想录-刷题第五十七天

42. 接雨水 题目链接&#xff1a;42. 接雨水 思路&#xff1a;本题十分经典&#xff0c;使用单调栈需要理解的几个问题&#xff1a; 首先单调栈是按照行方向来计算雨水&#xff0c;如图&#xff1a; 使用单调栈内元素的顺序 从大到小还是从小到大呢&#xff1f; 从栈头&…

【AI】RTX2060 6G Ubuntu 22.04.1 LTS (Jammy Jellyfish) 部署Chinese-LLaMA-Alpaca-2

下载源码 cd ~/Downloads/ai git clone --depth1 https://gitee.com/ymcui/Chinese-LLaMA-Alpaca-2 创建venv python3 -m venv venv source venv/bin/activate安装依赖 pip install -r requirements.txt 已安装依赖列表 (venv) yeqiangyeqiang-MS-7B23:~/Downloads/ai/Chi…

C语言实现循环队列

1.C语言版本 循环队列我是基于动态数组的优化实现的 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define DEFAULT_CAPACITY 10 #define ELEMENT_NOT_FOUND -1 // 我们的循环队列是基于队列实现的 所以说只能够在队尾入队 队头出队 而且…

软件测试【测试用例设计】面试题详解

前言 今天笔者想和大家来聊聊测试用例&#xff0c;这篇文章主要是想要写给测试小伙伴们的&#xff0c;因为我发现还是有很多小伙伴在遇到写测试用例的时候无从下手&#xff0c;我就想和大家简单的聊聊&#xff0c;这篇文章主要是针对功能测试的。 一、微信功能测试 1.点击点…

后端开发笔记20240106

文章目录 写在前面时间相关的减法操作两个date日期相减获得时间差lacaltime和date做差 sql语句&#xff0c;select子句当作where查询的条件 写在前面 出来创业也一年多了&#xff0c;感觉这一年&#xff0c;后端的开发荒废了很多&#xff0c;都快不如专注做后端开发两三年的学…

QGroundControl Qt安卓环境搭建及编译出现的问题

记录Qt 5.15.2搭建安卓环境出现的各种问题。 zipalign tool not found: D:/JavaAndroid/Android/sdk/build-tools//zipalign.exe&#xff1f; 答&#xff1a;需要将DANDROID_PLATFORM升级到已下载的版本. bin/llvm-readobj.exe: error: unknown argument ‘–libs’ 答&…

07-微服务getaway网关详解

一、初识网关 在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢&#xff1f;如果没有网关的存在&#xff0c;我们只能在客户端记录每个微服务的地址&#xff0c;然后分别去调用。这样的话会产生很多问题&#xff0c;例…

数据可视化|Python之Pyecharts将“爬虫数据”绘制饼状图

前言 本文是该专栏的第40篇,后面会持续分享python数据分析的干货知识,记得关注。 在项目中,可能有些同学或多或少遇见这样的需求。将爬虫采集下来的数据,进行图像可视化处理,方便其他业务线进行数据分析处理。 而本文,笔者将以某个爬虫案例的采集数据为例子,使用Pytho…

链表的中间节点

链表的中间节点 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/middle-of-the-…

【1】SM4 CBC-MAC 机制

0x01 题目 MSG1: e55e3e24a3ae7797808fdca05a16ac15eb5fa2e6185c23a814a35ba32b4637c2 MAC1: 0712c867aa6ec7c1bb2b66312367b2c8 ----------------------------------------------------- MSG2: d8d94f33797e1f41cab9217793b2d0f02b93d46c2ead104dce4bfec453767719 MAC2: 4366…

【Java】WGS84转2000国家大地坐标系(CGCS2000)

引用Eclipse在github上的一个开源项目https://github.com/locationtech/proj4j 1. pom.xml引入依赖 <!-- https://mvnrepository.com/artifact/org.locationtech.proj4j/proj4j --> <dependency><groupId>org.locationtech.proj4j</groupId><arti…

Vue3的使用

一 Vue3的变化 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-Shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 Composition API&#…

【UE 材质】简单的纹理失真、溶解效果

目录 1. 失真效果 2. 溶解效果 3. 失真溶解 我们一开始有这样一个纹理 1. 失真效果 其中纹理节点“DistortTexture”的纹理为引擎自带的纹理“T_Noise01”&#xff0c;我们可以通过控制参数“失真度”来控制纹理的失真程度 2. 溶解效果 3. 失真溶解

GoZero微服务微服务个人探究之路(五)部署微服务到k8s的一种最佳实践

需做工作 在每个微服务下面新建一个Dockerfile文件根据Dockerfile文件使用docker build指令&#xff0c;打包为具体的镜像&#xff08;根据自己需求选择&#xff09;将docker镜像上传到私人docker仓库或者是公共仓库&#xff0c;如果没有上传&#xff0c;则自动保存在本地编写…

openssl3.2 - 官方demo学习 - guide - quic-client-block.c

文章目录 openssl3.2 - 官方demo学习 - guide - quic-client-block.c概述笔记END openssl3.2 - 官方demo学习 - guide - quic-client-block.c 概述 在程序运行时, 要指定环境变量 SSL_CERT_FILErootcert.pem, 同时将rootcert.pem拷贝到工程目录下, 否则不好使 吐槽啊, 为啥不…

Centos7 安装Jenkins2.440

首先&#xff0c;确保您的CentOS 7系统已经安装了Java 11。您可以使用以下命令来安装Java 11&#xff1a; bash 从官网下载jdk11&#xff0c;例如&#xff1a;jdk-11.0.21_linux-x64_bin.tar.gz&#xff0c;使用命令tar -zxvf jdk-11.0.21_linux-x64_bin.tar.gz -C / 直接解压…

kafka简单介绍和代码示例

“这是一篇理论文章&#xff0c;给大家讲一讲kafka” 简介 在大数据领域开发者常常会听到MQ这个术语&#xff0c;该术语便是消息队列的意思&#xff0c; Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布&#xff0c;使用Scala语言编写&#xff0c;与2010年…

HTML---Jquery选择器

文章目录 目录 文章目录 本章目标 一.Jquery选择器概述 二.Jquery选择器分类 基本选择器 层次选择器 属性选择器 三.基本过滤选择器 练习 本章目标 会使用基本选择器获取元素会使用层次选择器获取元素会使用属性选择器获取元素会使用过滤选择器获取元素 …