前端表单中的手机号的验证

在我们前端开发,会对手机号的表单验证,不同的产品有不同的使用场景,下面写一下我在开发中进行的表单验证吧。

要验证的点:

手机号码的格式要正确。

向后端发送请求验证手机号是否存在

去空格(我看antd里的input没有什么属性可以去空格,就只能再写一个函数了)

来看看

javascript 复制代码
<template>
  <a-form
        ref="addUserModal"
        :model="createParams"
        :layout="'vertical'"
        style="padding: 20px"
        :rules="rules"
      >
   ...
   <a-form-item label="手机号码" name="phone">
          <a-input
            placeholder="请输入手机号码"
            v-model:value="createParams.phone"
            @blur="handleChange"
          />
    </a-form-item>
   </a-form>
</template>
javascript 复制代码
<script>

const rules = {
  password: [{ required: true, message: '请输入用户密码' }],
  phone: [
    { required: true, message: '请输入手机号', trigger: 'blur' },
    { validator: checkPhoneExist, trigger: 'blur' },
  ],
  .....
};
// 手机号码的正则表达式
const isPhoneValid = (phone: string) => {
  const phoneRegex = /^1[3-9]\d{9}$/;
  return phoneRegex.test(phone);
};

// 手机号重复监测
const checkPhoneExist = async (rule: Rule, value: string) => {
  const phoneCheck = {
    tableName: 'sys_user',
    fieldName: 'phone',
    fieldVal: value,
  };
  if (!isPhoneValid(value) && value !== undefined) {
    throw new Error('手机号格式不正确');
  }
  if (value) {
    try {
      const res = await checkRepeat(phoneCheck);
      if (res.code !== 200) {
        throw new Error('手机号已存在');
      }
    } catch (error) {
      throw new Error('手机号已存在');
    }
  }
};
// 去除空格
const handleChange = (e: any) => {
  createParams.value['phone'] = e.target.value.trim();
};
</script>

如果你有什么更好的实现方法,可以交流怕哦。

本人是一个入行一年,还没有师傅带的小白,好多东西都是在实际开发中遇到了在学习,解决,如果有什么不足的话,欢迎各位大佬可以与我交流哦,或者你有什么更好的实现方法,有可以告诉我哦!让 我学习,进步一下

相关推荐
weixin1997010801624 分钟前
《施耐德商品详情页前端性能优化实战》
前端·性能优化
不想上班只想要钱34 分钟前
模板里 item.xxx 报错 ,报 item的类型为未知
前端·vue
妖萌妹儿1 小时前
postman怎么做参数化批量测试,测试不同输入组合
开发语言·javascript·postman
阿琳a_1 小时前
在github上部署个人的vitepress文档网站
前端·vue.js·github·网站搭建·cesium
酉鬼女又兒1 小时前
零基础快速入门前端ES6 核心特性详解与蓝桥杯 Web 考点实践(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·职场和发展·蓝桥杯·es6·css3·html5
Zk.Sun1 小时前
【RK3588 Mali610 适配 Qt6 】
前端·javascript·vue.js
不想吃菠萝1 小时前
vue3+ts 使用postcss-pxtorem依赖进行rem适配
前端·javascript·vue.js·postcss
人民广场吃泡面2 小时前
React新手快速入门学习指南(2026最新版)
前端·react.js·前端框架
kyriewen112 小时前
本地存储全家桶:从localStorage到IndexedDB,把数据塞进用户浏览器
开发语言·前端·javascript·ecmascript·html5
油丶酸萝卜别吃2 小时前
本地调试跨域问题:关闭 Chrome 同源策略的技巧
前端·chrome