首页 > 其他分享 >el-input限制输入0-100的数字,最多四位小数

el-input限制输入0-100的数字,最多四位小数

时间:2024-09-02 14:51:01浏览次数:12  
标签:el 匹配 数字 value input 100 小数

<template>
<el-input
	min="0"
	max="100"
	clearable
	type="number"
	step="0.0001"
	class="!w-[120px]"
	placeholder="输入检测值"
	v-model="value"
	@input="
	  value =
		value.replace(
		  /^(100|[1-9]?\d)(\.\d{0,4})?.*$/,
		  '$1$2'
		)
	"
</el-input>
<template>

<script setup lang='ts'>
import { ref } from "vue";

const value = ref();
</script>

/** 去掉input右边的上下箭头 */
<style lang="scss" scoped>
:deep(input::-webkit-outer-spin-button),
:deep(input::-webkit-inner-spin-button) {
 -webkit-appearance: none !important;
}
:deep(input[type="number"]) {
 appearance: textfield;
 -moz-appearance: textfield;
}
</style>

详细解释

  1. ^(100|[1-9]?\d):

    • 100|: 匹配 100。
    • [1-9]?\d: 匹配 0-99 的数字。
      • [1-9]?: 匹配 1-9 的数字,出现 0 次或 1 次。
      • \d: 匹配一个数字(0-9)。
  2. (\.\d{0,4})?:

    • \.: 匹配小数点。
    • \d{0,4}: 匹配 0 到 4 位数字。
    • (...): 圆括号用于捕获匹配的子字符串。
    • ?: 表示前面的模式是可选的(零次或一次)。
  3. .*$: 匹配任意字符零次或多次,直到字符串的结尾。

  4. 替换字符串 '$1$2':

    • $1: 表示第一个捕获组,即整数部分。
    • $2: 表示第二个捕获组,即小数部分。
  5. type="number": 确保输入框只能输入数字。

  6. step="0.0001": 设置步长为 0.0001,以允许最多四位小数。

  7. min="0" 和 max="100": 设置输入的最小值和最大值。

  8. @input 事件: 使用正则表达式确保输入的整数部分在 0 到 100 之间,并且最多四位小数。

示例

  • 如果 value"123.45678abc",替换后会变成 "23.4567"(因为 123 超出了 0-100 的范围)。
  • 如果 value"99.9999xyz",替换后会变成 "99.9999"
  • 如果 value"100.1234",替换后会变成 "100.1234"
  • 如果 value"0.1234",替换后会变成 "0.1234"

标签:el,匹配,数字,value,input,100,小数
From: https://www.cnblogs.com/crispyChicken/p/18392691

相关文章

  • preload、prefetch
    preloadpreload是一种声明式的资源预加载技术,它告诉浏览器页面即将需要的资源,并请求浏览器提前加载这些资源。preload的主要特点包括:高优先级:preload加载的资源通常具有较高的优先级,浏览器会尽可能快地加载这些资源,但加载过程不会阻塞文档的解析或window的onload事件。指定资......
  • PBR-Book Ch8 Reflection Models
    PBR-BookCh8ReflectionModelsReflectionModels(pbr-book.org)球坐标系中,使用\((\theta,phi)\)\(\theta\)givendirectiontothe\(z\)axis\(\phi\)theangleformedwiththe\(x\)axisafterprojectionofdirectionontothe\(xy\)lane.......
  • Electron踩坑日记-2
    Electron踩坑日记-2Electron+vue项目渲染进程如何与逻辑进程交互?假设有这样一个需求,在页面上有一个A按钮,我现在需要点击A,然后执行某段nodejs的代码.我们知道,在浏览器环境下是无法执行nodejs代码的,因此我们需要调用到electron给予的能力.下文,我将演示如何编写相关代码.......
  • 《HelloGitHub》第 101 期
    每月28号更新的开源月刊,这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub......
  • Electron踩坑日记-1
    Electron踩坑日记Electron+vue项目打包后,应用打开出现空白背景在实际开发过程中,我遇到了在serve模式下能够正常运行,但是build后的产物给到测试,打开出现全透明(因为我设置了electron的透明属性,如果没有设置就是纯白色)没有内容的情况.经过排查我发现,产生问题的原因是在s......
  • RHEL8.9中anywhere报错error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key
    本文写于2024年9月2日,维护有效期两年.先说解决方法,进入anywhere的keys目录,即/usr/local/lib/node_modules/anywhere/keys后,备份后生成rsa:2048位的新证书. 最近学习vite+vue,跟着这个文档做的https://segmentfault.com/a/1190000041324864可是在进入dist输出目录后,运......
  • 将Laravel项目中的"Remove public directory"翻译成中文为"移除公共目录"
    将"Removepublicdirectory"翻译成中文为"移除公共目录"是正确的。"public"通常指的是公共的、共享的或公开的,"directory"则是目录、文件夹的意思。因此,"Removepublicdirectory"的意思是移除公共目录,即删除或取消该目录的公共访问权限,或者将其从项目中删除。这样的翻译能够准......
  • 【一文看懂深度补全】Deep Depth Completion from Extremely Sparse Data: A Survey
    【综述】从稀疏的数据中进行深度补全:DeepDepthCompletionfromExtremelySparseData:ASurvey摘要1.引言贡献概述2.基于深度学习的深度补全2.1问题表述2.2分类方法3.无引导深度补全3.1稀疏感知CNN3.2归一化CNN3.3使用辅助图像进行......
  • animation 巧用 delay 做 暂停动画
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>animationdelayballmove......
  • Laravel 生态系统Forge Vapor Nova Envoyer
    Laravel生态系统中包含了多种工具和服务,旨在帮助开发者更高效地构建和维护Laravel应用程序。以下是您提到的几个工具的具体用途:1.LaravelForge用途:LaravelForge是一个服务器管理工具,可以帮助你快速设置和管理服务器。通过Forge,你可以轻松地创建服务器实例,安装必要的软......