【小程序】输入框检验姓名、身份证(正则表达式)并提交

2023-11-10

目标

  • 输入绑定姓名、身份证号并进行校验
  • 若未填或校验不通过则显示绑定失败的轻提示
  • 若通过校验并提交则显示绑定成功

在这里插入图片描述

使用Vant Weapp (gitee.io)库。

思路与代码

html:

  • wx:model绑定输入框输入的值
  • data-key是一个属性,在js中的e.currentTarget.dataset.key可以得到
  • onChange、check分别是修改事件和失去焦点的事件
  • 错误提示统一配置,会用到上面的data-key
<view class="withdraw">
  <van-field
    wx:model="{{ username}}"
    data-key="username"
    bind:change="onChange"
    bind:blur="check"
    label="姓名"
    placeholder="请输入姓名"
    required
    error-message="{{ errmsg.username }}"
  />
  <van-field
    wx:model="{{ idcard }}"
    data-key="idcard"
    bind:change="onChange"
    bind:blur="check"
    label="身份证号"
    placeholder="请输入身份证号"
    required
    type="idcard"
    error-message="{{ errmsg.idcard }}"
  />
</view>

<view class="btn">
  <van-button block round color="#3975C6" bind:click="submit">确认</van-button>
</view>
<van-toast id="van-toast" />

js:

  • onChange 修改输入的值时,将输入的值赋值
  • check 失去焦点时,检验输入是否符合,正则表达式见代码
  • 注意:
  • 校验通过后对数据进行的操作因项目需求而异,这里是将数据存在状态管理store中
  • 由于data-key的值与e.currentTarget.dataset.key的值是相同的,可以通过data-key批量配置errmsgerrmsg 的属性也与data-key相同。
  • submit 点击确认按钮提交数据时,检验是否有错误输入,若有则“绑定失败”,否则“绑定成功”
createPage({
   setup() {
     let username =ref('')
     let idcard = ref('')
     let errmsg = reactive({
       username: ' ',
       idcard: ' '
     }) //错误提示信息

     const onChange = (e) => {
       let type = e.currentTarget.dataset.key
       if (type === 'username') username.value = e.detail
       if (type === 'idcard') idcard.value = e.detail
     }

     const check = (e) => {
       let type = e.currentTarget.dataset.key
       if (type === 'username') {
         let reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/
         if (!reg.test(e.detail.value)) {
           errmsg[type] = '请输入正确的中文名字'
         } else {
           errmsg[type] = ''
           //存在store状态管理中,这里因项目而异
           store.setWxUserInfo(Object.assign(store.getWxUserInfo, { username }))
         }
       }
       if (type === 'idcard') {
         let reg =
           /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/

         if (!reg.test(e.detail.value)) {
           errmsg[type] = '身份证格式不正确'
         } else {
           errmsg[type] = ''
           store.setWxUserInfo(Object.assign(store.getWxUserInfo, { idcard }))
         }
       }
     }

     const submit = () => {
       if (errmsg['username'] === '' && errmsg['idcard'] === '') {
         store.setWxUserInfo(store.getWxUserInfo)
         Toast('绑定成功!')
       } else {
         Toast('绑定失败!')
       }
     }

     return {
       username,
       idcard,
       check,
       errmsg,
       onChange,
       submit
     }
   }
 })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【小程序】输入框检验姓名、身份证(正则表达式)并提交 的相关文章

随机推荐

  • 用代码生成炫酷的词云图—《你好,李焕英》

    最近比较火的电影 你好 李焕英 莫名戳中了大家的泪点 应用评论中的一句 妈妈永远比想象中的要爱我们 虽然我没哭 但看大家都哭了 说明电影不在于多有深意 而是能引起大家共鸣的电影 才是好电影 完全瞎编的 下面我们就来看一下 你好 李焕英 在豆
  • 盛科交换机配置命令_cisco2960交换机 清除配置的命令

    cisco2960交换机 清除配置的命令 1 计算机通过COM端口连接到交机 如果电脑不带COM 需要使用USB转串口线连接交换机 通过超级终端调试 2 当开关通电时 按住开关前面的 模式 按钮 用手按住交换机 Mode 按钮 注意超级终端
  • Uploads-labs靶场练习记录8、9、10-绕过服务端检测(文件后缀)

    这是第八关 1 提示显示不可以上传所有可解析的后缀 那就用png配合htaccess转换php吧 2 成功 这是第九关 1 修改大小写发现还是不能上传 2 后缀加上 DATA上传 成功 这是第十关 1 尝试修改为filename phpin
  • 程序编译链接过程

    文章目录 前言 一 预编译阶段 二 编译阶段 三 汇编阶段 四 链接阶段 总结 前言 include
  • 【msvcp140.dll怎么下载】msvcp140.dll丢失的解决方法

    msvcp140 dll文件对一些电脑软件 电脑游戏等程序的正常运行起到关键性作用 对于弹出缺少此类文件的弹窗 用户们很多时候也摸不着头脑 程序明明上次都能正常运行 突然就弹出缺少msvcp140 dll文件的提醒窗口 通过小编此次编辑的文
  • 多益研发岗视频面试

    03 13 这是自己的第三场面试 自认为面试得还可以 90 以上的问题都答对了 但一个星期后通知说挂了 还是会觉得困惑与可惜 今后再巩固各个知识点吧 39min 1 自我介绍 2 项目介绍 3 项目中有什么亮点或者遇到什么难点 4 说说数据
  • 用HTML做一個酷炫的照片墻,效果非常酷炫。

    下面給大家看看效果 想不想要代碼呢 上代碼
  • 关于字符串二进制定点数浮点数与int以及NBCD码转换的问题

    关于字符串二进制定点数浮点数与int以及NBCD码转换的问题 代码 将十进制数字字符串转化为二进制补码 32位 public String intToBinary String numStr int num Integer parseInt
  • API-应用程序编程接口

    API 定义 通俗理解 定义 API Application Programming Interface 应用程序接口 是一些预先定义的接口 如函数 HTTP接口 或指软件系统不同组成部分衔接的约定 1 用来提供应用程序与开发人员基于某软件
  • 《迅为开发板i.MX8MM 学习记录》——【MIPI篇】Linux 应用程序显示一张图片

    文章目录 前言 一 准备工作 1 开发环境 2 文件准备 二 伪代码分析 1 读取图片数据到数组 2 打开DRM设备 创建fb 3 填充framebuffer 三 完整代码 1 app h 2 app c 四 编译与运行 1 编译 2 运行
  • Blender-绑定动画Auto-Rig Pro 重映射动捕FBX 小K结合 的问题以及解决

    基本使用的教程参考 B站教程参考 Blender 零成本动捕 使用Autorig轻松重映射动捕BVH to FBX to MMD VMD 等自定义骨骼 附带IK 小K的FBX文件导入会报错 需要安装 better fbx addon 4 1
  • STL(标准模板库)泛型编程的基础介绍

    STL泛型编程 一 概述 二 STL基本概念 三 STL六大组件 四 STL中容器 算法 迭代器 五 C 11新增的容器种类 六 序列 七 算法 八 迭代器 1 迭代器的种类 2 随机访问迭代器 3 迭代器层次结构 九 概念 改进和模型 十
  • 关于丢失signal的发生过程

    关于条件变量的使用 有一种需要注意的情况 条件变量的原理是 wait函数将当前线程挂起 加入到等待队列中 wake函数将某个或者所有被wait函数挂起的线程复活 所以 wake执行时一定要保证所有该wait的都已经wait了 也就是说被挂在
  • 几十亿工单表,查询优化案例

    前言 之前在某大型保险公司担任技术经理 负责优化话务系统模块 由于系统已经运行10年之久 尤其在话务系统中 沉积了几十亿的话务信息表 业务人员反馈 话务系统历史数据查询部分已经完全查询不动 且数据增量仍然已每天200w 以上 数据库频繁报警
  • 【日常业务开发】Java调用第三方http接口的常用方式

    日常业务开发 Java调用第三方http接口的常用方式 概述 Java调用第三方http接口的方式 通过JDK网络类Java net HttpURLConnection 通过apache common封装好的HttpClient 通过Apa
  • Java网络编程

    博客说明 内容初稿为本人的学习笔记归纳整理 在此基础上加入了相关视频学习 相关书籍的理解 相关文章博客查阅及源码阅读 博客的编写已经尽量做到详尽 但免不了有纰漏和理解不到位的地方 发现博客的任何问题均可联系我 aboutwxf 163 co
  • Error loading: xxxx/plugins/python/helpers/pydev/pydevd_attach_to_process/attach_linux_amd64.so

    在涉及到深度学习网络调试的时候 经常出现断点卡住的情况 还会提示 Error loading home xxx pycharm 2023 2 1 plugins python helpers pydev pydevd attach to p
  • java中的实时定时任务管理系统

    java中的实时定时任务管理系统 前言 新增定时任务的线程池配置类 配置ScheduledFuture的包装类 ScheduledFuture是ScheduledExecutorService定时任务线程池的执行结果 实现Runnable接
  • 对象内存分布

    在 JVM 中 对象在内存中分为三块区域 对象头 由Mark Word和Klass Point构成 Mark Word 标记字段 用于存储对象自身的运行时数据 例如存储对象的HashCode 分代年龄 锁标志位等信息 是synchroniz
  • 【小程序】输入框检验姓名、身份证(正则表达式)并提交

    目标 输入绑定姓名 身份证号并进行校验 若未填或校验不通过则显示绑定失败的轻提示 若通过校验并提交则显示绑定成功 使用Vant Weapp gitee io 库 思路与代码 html wx model绑定输入框输入的值 data key是一