vue前端表单常用的邮箱、电话、身份证、url、Ip等正则式多语言版校验

utils工具类中创建verify.js

  • 常用表單校驗
//正则校验的正则表达式,这里注意正则表达式中的‘\’要使用‘\\’转义
const patterns = {"name": "^[a-zA-Z_][0-9a-zA-Z_]{0,}$","phone": "^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$","tel": "^(0\\d{2,3}-\\d{7,8}(-\\d{1,6})?)$","email": "^[\\w\\.-]+@[a-zA-Z\\d\\.-]+\\.[a-zA-Z]{2,}$","pwd": "^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[\\(\\)])+$)([^(0-9a-zA-Z)]|[\\(\\)]|[a-z]|[A-Z]|[0-9]){8,}$","ip": "^(?=(\\b|\\D))(((\\d{1,2})|(1\\d{1,2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d{1,2})|(1\\d{1,2})|(2[0-4]\\d)|(25[0-5]))(?=(\\b|\\D))$","IDCard": "(^\\d{15}$)|(^\\d{17}([0-9]|X)$)","url": "^https?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$"
}//对应正则表达式的提示信息
const patternMsg_US = {"name": "请以字母、下划线开头并包括数字、字母、下划线组成","phone": "手機號碼格式不正確","tel": "電話號碼格式不正確","email": "郵箱地址不正確","pwd": "密码至少由8位包含字母、数字、特殊字符两种组合","ip": "IP地址不正確","IDCard": "身份證號碼不正確","url": "鏈接格式不正確"
}
const patternMsg_CN = {"name": "请以字母、下划线开头并包括数字、字母、下划线组成","phone": "手机号码格式不正确","tel": "电话号码格式不正确","email": "邮箱地址不正确","pwd": "密码至少由8位包含字母、数字、特殊字符两种组合","ip": "IP地址不正确","IDCard": "身份证号码不正确","url": "链接格式不正确"
}
const patternMsg_TW = {"name": "Please start with a letter and an underscore and include a number, a letter, and an underscore","phone": "Mobile phone number is not in the correct format","tel": "The phone number is not in the correct format","email": "The email address is incorrect","pwd": "The password consists of at least 8 characters, including letters, numbers, and special characters"."ip": "IP address is incorrect","IDCard": "ID number is incorrect","url": "Incorrect link format"
}
// 获取当前多语言类型
const defaultLang = 'zh-TW'
const lang = localStorage.getItem('lang') || defaultLang
const msgObj = {'en-US': { ...patternMsg_US },'zh-CN': { ...patternMsg_CN },'zh-TW': { ...patternMsg_TW }
}
//根据使用的正则返回对应的正则和信息对象
const pattern = (name, para = 'g', type = 'blur') => {return {pattern: new RegExp(patterns[name], para),message: msgObj[lang][name],trigger: type}
}export default pattern;

vue页面使用

import verify from '@/util/verify'data(){return{rules:{passward: [{ required: true, message: this.$t('caleader.msg01'), trigger: 'change' }],url: [verify('url')],}}
}

备注:
1、tel电话正则表达式:/^(0\d{2,3}-\d{7,8}(-\d{1,6})?)$/

  • ^:匹配字符串的开始。
  • (0\d{2,3}-\d{7,8}(-\d{1,6})?):匹配区号和电话号码的组合,其中:
    • 0:固定电话的区号通常以0开头。
    • \d{2,3}:匹配2到3位数字,可能是区号的一部分。
    • -:匹配区号和电话号码之间的横线。
    • \d{7,8}:匹配7到8位电话号码。
    • (-\d{1,6})?:可选部分,匹配横线后接1到6位分机号。
  • $:匹配字符串的结束

2、电子邮箱正则表达式:/^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$/

  • ^:匹配字符串的开始。
  • [\w.-]+:匹配一个或多个字母、数字、下划线、点或短横线。
  • @:匹配邮箱地址中的 “@” 符号。
  • [a-zA-Z\d.-]+:匹配一个或多个字母、数字、点或短横线,表示域名的一部分。
  • .:匹配邮箱地址中的点。
  • [a-zA-Z]{2,}:匹配至少两个字母,表示域名的顶级域。
  • $:匹配字符串的结束。

3、身份证正则表达式:/(^\d{15}$)|(^\d{17}([0-9]|X)$)/

  • ^\d{15}$:匹配15位数字的身份证号码。
    • ^:匹配字符串的开始。
    • \d{15}:匹配15位数字。
    • $:匹配字符串的结束。

或者

  • ^\d{17}([0-9]|X)$:匹配18位数字或17位数字加上一个数字或字母X的身份证号码。
    • ^:匹配字符串的开始。
    • \d{17}:匹配17位数字。
    • ([0-9]|X):匹配一个数字或字母X。
    • $:匹配字符串的结束。

4、url正则表达式:^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

  • ^:匹配字符串的开始。
  • https?:匹配 “http” 或 “https”。
  • ://:匹配 “😕/”。
  • ([\w-]+\.)+:匹配域名部分,其中:
    • [\w-]+:匹配一个或多个字母、数字、下划线或短横线,表示子域名的一部分。
    • \.:匹配域名中的点。
  • [\w-]+:匹配主域名部分。
  • (/[\w-./?%&=]*)?:匹配路径和查询参数部分,其中:
    • /:匹配路径的开始。
    • [\w-./?%&=]*:匹配零个或多个字母、数字、下划线、短横线、点、斜杠、问号、百分号和等号,表示路径和查询参数的一部分。
    • ?:匹配查询参数的开始。
  • $:匹配字符串的结束。

写在最后:
本文有什么错误的地方,往各位大佬及时指出,马上更正!
后续持续更新,你的点赞和关注~
是我进化道路上源源不断的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字人对话系统 Linly-Talker(已加入Qwen和GeminiPro加强对话+上传任意图片的数字人)

🔥🔥🔥数字人对话系统 Linly-Talker🔥🔥🔥(已加入Qwen和GeminiPro加强对话上传任意图片的数字人) English 简体中文 欢迎大家star我的仓库 https://github.com/Kedreamix/Linly-Ta…

Git专栏篇

一、基础知识 二、常用手段 1. 复制其他提交到本分支 目的:现有git仓库,该仓库有两个分支a和b,将a分支的最近三个版本提交内容复制 到b分支的提交上。 在 Linux 系统中,你可以按照以下步骤将分支 A 的最近三个版本的提交内容复…

linux 环境下安装ffmpeg。

参考 https://www.anquanclub.cn/9782.html 下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz cd ffmpeg-3.1. ./configure --prefix/usr/local/ffmpeg make && make install 之后在 ffmepg目录下执行 ./ffmpeg -versio…

CMake中引入第三方库

CMake中,如果我们需要引入第三方库,首先想到的是用find_package函数。的确,如果我们引入的第三方库是一些比较标准的库如OpenCV可以用下面的代码。 set(OpenCV_DIR xxxx) # xxxx目录包含OpenCVConfig.cmake find_package(opencv required) #…

XOR运算文件加密示例

前言: XOR加密是一种非常简单的加密技术属于对称加密(相同的密钥进行加密和解密),不提供机密性或完整性验证因此不适用于高度敏感的数据,容易受到各种攻击,包括已知明文攻击。在实际应用中,应该…

实时记录和查看Apache 日志

Apache 是一个开源的、广泛使用的、跨平台的 Web 服务器,保护 Apache Web 服务器平台在很大程度上取决于监控其上发生的活动和事件,监视 Apache Web 服务器的最佳方法之一是收集和分析其访问日志文件。 Apache 访问日志提供了有关用户如何与您的网站交互…

外贸客户邮箱采集软件的工作原理

外贸客户邮箱采集软件是专为外贸从业人员设计的工具,旨在帮助用户快速、准确地获取潜在客户的邮箱地址。此类软件在国际贸易中发挥着越来越重要的作用,尤其在当前数字化时代,有效的客户邮箱采集已成为外贸业务成功的关键因素之一。 该软件的…

Volcano Controller控制器源码解析

Volcano Controller控制器源码解析 本文从源码的角度分析Volcano Controller相关功能的实现。 本篇Volcano版本为v1.8.0。 Volcano项目地址: https://github.com/volcano-sh/volcano controller命令main入口: cmd/controller-manager/main.go controller相关代码目录: pkg/co…

一加 Buds 3正式发布:普及旗舰音质 一加用户首选

1月4日,一加新品发布会正式推出旗下新款耳机一加 Buds 3。延续一加经典美学,秉承音质完美主义追求,一加 Buds 3全面普及一加旗舰耳机体验,其搭载旗舰同款“超清晰同轴双单元”,配备49dB 4000Hz超宽频主动降噪&#xff…

pandas时间加减

在 Pandas 中,可以使用加减法运算符(、-)对时间序列进行加减运算。还可以使用 pd.DateOffset 或 pd.Timedelta 对时间序列进行偏移。 示例: import pandas as pd# 创建时间序列 date_rng pd.date_range(start1/1/2020, end1/10/2020, freqD) df pd.D…

万界星空科技MES系统中的生产管理

MES系统能够帮助企业实现生产计划管理、生产过程控制、产品质量管理、车间库存管理、项目看板管理等,提高企业制造执行能力。 万界星空MES系统特点: 1. 采用强大数据采集引擎、整合数据采集渠道(RFID、条码设备、PLC、Sensor、IPC、PC等&…

【中小型企业网络实战案例 七】配置限速

相关学习文章: 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…

C++系列十三:C++中的引用

C中的引用 1. 引用的声明与初始化2. 引用在函数中的应用3. 引用的注意事项与陷阱 引用在C中是一种特殊的变量,它为其他变量提供了一个别名。这意味着,引用和它所引用的变量实际上是同一个实体。通过引用,可以直接访问和修改变量的值&#xff…

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。 开始之前&#xff…

作业--day41

利用模板类完成顺序表 #include <iostream>using namespace std;//模板类 template <typename T> class SeqTab{T arr[20];int maxsize; public:SeqTab():maxsize(0){}void Insert(T a);void Search(T a);void Delete(int index);void Show(); };//尾插 template …

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Column组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之线性布局容器Column组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Column组件 沿垂直方向布局的容器。 子组件 可以包含子组件。 接…

完美解决Github 2fa二次验证问题

完美解决Github 2fa二次验证问题 原文阅读 https://onedayxyy.cn/docs/github-2fa 前言 你的 Github 账户可能被封禁! 教你应对 Github 最新的 2FA 二次验证! 无地区限制, 无额外设备的全网最完美方案 1、2FA 的定义 双因素身份验证 (2FA) 是一种身份和访管理安全方法&…

栈和队列基本实现

1、栈 1.1栈的概念及结构 栈时一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 1.2栈的基本实…

物流实时数仓:数仓搭建(DWS)一

系列文章目录 物流实时数仓&#xff1a;采集通道搭建 物流实时数仓&#xff1a;数仓搭建 物流实时数仓&#xff1a;数仓搭建&#xff08;DIM&#xff09; 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&#xff09;一 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&am…

遥测终端机——连接智能世界的桥梁

在当今的智能化时代&#xff0c;数据的重要性日益凸显。各个行业都需要对数据进行实时监测、处理和分析&#xff0c;以提升生产效率、优化运营管理。遥测终端机作为连接智能世界的桥梁&#xff0c;正逐渐成为各行业的必备设备。 遥测终端机是一种集数据采集、存储、传输和管理于…