找回密码
 立即注册
查看: 421|回复: 0

[前端] Element - ui :el-input 输入只能是数字并且小数点后只能是1-2位

[复制链接]

279

主题

0

回帖

964

积分

超级版主

积分
964
发表于 2024-7-1 12:46:53 | 显示全部楼层 |阅读模式
本帖最后由 Shaw0xyz 于 2024-7-3 18:39 编辑

1. 概述

Element-UI 是一个基于 Vue.js 的组件库,广泛应用于各类前端项目。在日常开发中,常常需要对用户输入进行限制,例如只能输入数字且小数点后只能有1到2位。本文将详细介绍如何使用 Element-UI 中的 :el-input 组件实现这一需求。

1.1 前置知识

在开始之前,需要了解以下前置知识:
- Vue.js 基础
- Element-UI 的基本使用方法
- 正则表达式基础

1.2 目标

本文的目标是通过实例演示和代码讲解,帮助读者掌握如何使用 :el-input 组件限制用户输入仅为数字,并且小数点后只能有1到2位。

2. 实现方法

2.1 基本思路

实现这一需求的基本思路是通过 Vue.js 的双向绑定机制和 :el-input 组件的 input 事件,对用户的输入进行实时验证和处理。当用户输入不符合要求时,及时对其进行纠正。

2.2 代码实现

以下是具体的实现步骤:

2.2.1 创建 Vue 实例

首先,我们需要创建一个 Vue 实例,并引入 Element-UI 组件库。

  1. import Vue from 'vue'
  2. import { Input } from 'element-ui'
  3. import 'element-ui/lib/theme-chalk/index.css'

  4. Vue.use(Input)

  5. new Vue({
  6.   el: '#app',
  7.   data() {
  8.     return {
  9.       userInput: ''
  10.     }
  11.   }
  12. })
复制代码


2.2.2 使用 :el-input 组件

在模板中使用 :el-input 组件,并绑定 userInput 数据。

  1. <template>
  2.   <div id="app">
  3.     <el-input v-model="userInput" @input="handleInput"></el-input>
  4.   </div>
  5. </template>
复制代码


2.2.3 编写 handleInput 方法

在 methods 中添加 handleInput 方法,通过正则表达式验证用户输入,并对不符合要求的输入进行处理。

  1. methods: {
  2.   handleInput(value) {
  3.     const regex = /^\d*\.?\d{0,2}$/
  4.     if (!regex.test(value)) {
  5.       this.userInput = this.userInput.slice(0, -1)
  6.     } else {
  7.       this.userInput = value
  8.     }
  9.   }
  10. }
复制代码


(1) regex 用于验证用户输入是否符合要求,即只能输入数字,并且小数点后只能有1到2位。
(2) 如果输入不符合要求(即正则表达式匹配失败),则通过 this.userInput.slice(0, -1) 删除最后一个字符。
(3) 否则,将输入的值赋给 userInput。

3. 完整代码示例

综合以上步骤,完整代码如下:

  1. import Vue from 'vue'
  2. import { Input } from 'element-ui'
  3. import 'element-ui/lib/theme-chalk/index.css'

  4. Vue.use(Input)

  5. new Vue({
  6.   el: '#app',
  7.   data() {
  8.     return {
  9.       userInput: ''
  10.     }
  11.   },
  12.   methods: {
  13.     handleInput(value) {
  14.       const regex = /^\d*\.?\d{0,2}$/
  15.       if (!regex.test(value)) {
  16.         this.userInput = this.userInput.slice(0, -1)
  17.       } else {
  18.         this.userInput = value
  19.       }
  20.     }
  21.   }
  22. })

  23. <template>
  24.   <div id="app">
  25.     <el-input v-model="userInput" @input="handleInput"></el-input>
  26.   </div>
  27. </template>
复制代码


4. 总结

本文介绍了如何通过 Element-UI 的 :el-input 组件和 Vue.js 实现对用户输入的限制,使其只能输入数字且小数点后只能有1到2位。通过正则表达式的使用,可以高效地验证和处理用户输入。这一方法适用于各种需要对输入内容进行限制的场景,具有较高的实用价值。






/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & linux ...

~互撩~ TG: @Shaw_0xyz
荔枝学姐爱吃荔枝!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 13:47 , Processed in 0.073485 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表