前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >el-input 输入验证 整数、小数、实数、整数、负数等

el-input 输入验证 整数、小数、实数、整数、负数等

作者头像
GoodTime
发布2024-03-05 16:14:49
3500
发布2024-03-05 16:14:49
举报
1、关于前端页面代码和规则验证可以参照之前文章

el-input 限制只能输入正整数

2、本文主要阐述ts公共验证类结合rule的形式对输入值进行规则校验

① 前端页面部分

代码语言:javascript
复制
<template>
  <div class="container">
    <el-form
      ref="dialogForm"
      size="small"
      class="form"
      :model="dialogForm"
      :rules="rules"
    >
      <el-row :gutter="30">
        <el-col :span="12">
          <el-form-item
            label="金额"
            prop="moneyNum"
          >
            <el-input
              v-model="dialogForm.moneyNum"
              autocomplete="off"
              placeholder="请输入金额"
              clearable
            />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>

  </div>
</template>

<script lang="ts">
import { Vue } from 'vue-property-decorator'
import { Form } from 'element-ui'
import { checkInputPositiveRealNum } from '@/utils/validate' // 验证

export default class Edit extends Vue {
  @Prop() method!: any;

  private dialogForm = {
    moneyNum: ''
  }

  private rules = {
    moneyNum: [{ validator: checkInputPositiveRealNum, trigger: 'blur' }]
  };

  private handleClose() {
    this.$emit('close')
  }

}
</script>
<style lang="scss" scoped>
.container {
  padding: 0px 20px 0 20px;
  .form {
    max-height: 700px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 30px;
  }
}
</style>

② validate.ts 验证部分

代码语言:javascript
复制
// 输入验证:大于0的数
export const checkInputPositiveRealNum = (rule: any, value: string, callback: any) => {
  if (!value) {
    callback()
  } else {
    const regPositiveRealNum = /^(([1-9]\d*)|([0][.]{1}[0-9]{0,2}[1-9]+)|([1-9]\d*[.]{1}[0-9]+))$/g
    if (regPositiveRealNum.test(value)) {
      callback()
    } else {
      return callback(new Error('请输入大于0的数'))
    }
  }
}
3、整数、小数、实数、整数、负数等的输入验证规则如下,只需要更新validate.ts和前端页面import { checkInputPositiveRealNum } from '@/utils/validate' // 验证的部分

① 验证正整数+正小数(包含0)

代码语言:javascript
复制
export const checkIsPositive = (rule, value, callback) => {
  if (!value) {
    callback()
  } else {
    const reg = /^\d+(?=\.{0,1}\d+$|$)/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入大于等于0的正数'))
    }
  }
}

② 验证正整数+正小数

代码语言:javascript
复制
export const checkIsPositiveEx0 = (rule, value, callback) => {
  if (!value) {
    callback()
  } else {
    /// ^(\d|[1-9]\d+)(\.\d{1,2})?$/          ---->2位小数
    const reg = /^(\d|[1-9]\d+)(\.\d+)?$/
    if (reg.test(value)) {
      if (value === '0') {
        callback(new Error('请输入大于0的正实数'))
      } else {
        callback()
      }
    } else {
      callback(new Error('请输入大于0的正实数'))
    }
  }
}

③ 验证正整数+0

代码语言:javascript
复制
export const checkIsPositiveInteger = (rule, value, callback) => {
  if (!value) {
    callback()
  } else {
    const reg = /^(0|[1-9][0-9]*)$/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入大于等于0的正整数'))
    }
  }
}

④ 验证正整数

代码语言:javascript
复制
export const checkIsPositiveIntegerEx0 = (rule, value, callback) => {
  if (!value) {
    callback()
  } else {
    const reg = /^([1-9][0-9]*)$/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入大于0的正整数'))
    }
  }
}

⑤ 特殊要求举例(包括小数位数、输入整数和小数位数的长度等)

代码语言:javascript
复制
export const checkIsPositiveInteger123 = (rule, value, callback) => {
  if (!value) {
    callback()
  } else {
    const reg = /^[1-9]\d{0,11}(\.\d{1,4})?$|^0(\.\d{1,4})?$/
    if (reg.test(value)) {
      callback()
    } else {
      callback(new Error('请输入正确格式数字,整数位不能超过12位,小数位不能超过4位'))
    }
  }
}
若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、关于前端页面代码和规则验证可以参照之前文章
  • 2、本文主要阐述ts公共验证类结合rule的形式对输入值进行规则校验
  • 3、整数、小数、实数、整数、负数等的输入验证规则如下,只需要更新validate.ts和前端页面import { checkInputPositiveRealNum } from '@/utils/validate' // 验证的部分
  • 若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档