正则验证封装

正则表达式常用符号说明:

.是除换行以外的所有任意符号

\s空白符号

\S除空白符号以外的任意符号

\w字母、数字、下划线

\W 除字母、数字、下划线以外的其他任意符号

\d 数字(0----9)

\D 除数字以外的任意其他符号

^ 字符串开始

$ 字符串结束

* 匹配0到无数次(匹配的是符号前边的字母或者数字等)

+ 匹配1到无数次(匹配的是符号前边的字母或者数字等)

?匹配0次或1次(匹配的是符号前边的字母或者数字等)

{x} 重复x次

{x,} 重复至少x次

{x,y} 重复x次到y次

[] 字符组,表示字符范围

() 捕获组(子表达式)

\ 转义符号

\b:匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配 "never" 中的 'er',但不能匹配 "verb" 中的 'er'。

\b是正则表达式规定的一个特殊代码,代表着单词的开头或结尾,也就是单词的分界处,虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
总结: \b 就是用在你匹配整个单词的时候。 如果不是整个单词就不匹配。 你想匹配 I 的话,你知道,很多单词里都有I的,但我只想匹配I,就是“我”,这个时候用 \bI\b

\B:匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

字符组:

 [0-9] 数字0到数组9之间的任意一个

[a-z]  字母a到字母z的任意一个

[^cfC]  除了字母  c   f    C的任意一个字符

[\一-\龥] 汉字中的任意一个汉字 

[^a-z] 除了字母 a 到字母z的任意一个字符

[^-a-c] 除了 -  字符以及字母a到字母z的任意一个字符

|   多选分支,或者关系

\1 \2 … 反向引用 < (\w) >.*</\1> 引用第一个捕获组的结果,用于匹配html的闭合标签

首先将我们写好的逻辑封装成js文件

//正则验证:直接引入组件,传需要验证的参数即可,不需要再写test/*** 用户名* @param {*} s*/
export function UserName(s) {return /^[a-zA-Z0-9\u4e00-\u9fa5]{2,10}$/.test(s);
}/*** 密码* @param {*} s*/
export function isPassWord(s) {return /^[a-zA-Z0-9]{6}$/.test(s);
}/*** 邮箱* @param {*} s*/
export function isEmail(s) {return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s);
}/*** 手机号码* @param {*} s*/
export function isMobile(s) {return /^1[3-9]{10}$/.test(s);
}/*** 电话号码* @param {*} s*/
export function isPhone(s) {return /^([0-9]{3,4}-)?([0-9]{3,4}-)?[0-9]{4,5}$/.test(s);
}/*** URL地址* @param {*} s*/
export function isURL(s) {return /^http[s]?:\/\/.*/.test(s);
}

在某个文件中的调用

// 引入自己定义的正则方法
import {isMobile,isPassWord,isPhone,isURL,isEmail,UserName} from './fz'// 打印看效果
console.log('UserName',UserName('相亲相爱一家人'));
console.log('password',isPassWord('123wew'));
console.log('isMobile',isMobile(1334567890));
console.log('isPhone',isPhone('0109-1723-12394'));
console.log('isURL',isURL('http://localhost:3000/?username=123/'));
console.log('isEmail',isEmail('212880794@qq.com'));

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

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

相关文章

2023年跨国企业如何实现跨境数据传输合规化(上)

一、什么是数据跨境传输&#xff1f; 首先了解一个概念&#xff0c;什么是数据跨境传输&#xff1f; 数据跨境传输简单概括就是指信息通过互联网等网络媒介&#xff0c;在跨国企业之间进行传递和交换的过程。 有一则官方网站关于全球化数字化的数据统计&#xff1a;仅2019 年…

MyBatisPlus学习笔记二

接上&#xff1a;MyBatisPlus学习笔记一&#xff1a; MyBatisPlus学习笔记一-CSDN博客 1、条件构造器 MyBatisPlus支持各种复杂的where条件&#xff0c;可以满足日常开发的所有需求。 1.1、集成体系 1.2、实例 查询 lambda查询 更新 1.3、总结 2、自定义sql 我们可以利用MyB…

强化学习AI构建实战 - 基于“黄金点”游戏(二)

服务端接口 为了让大家的AI可以顺利地进行游戏&#xff0c;并验证我们对策略和AI的一些实现&#xff0c;我们需要一些基础设施来帮助我们完成一些工作。这些工作包括游戏回合的控制、参与者之间的数据同步、游戏数据的储存等功能。 为了简化这些基础工作&#xff0c;以便大家…

VM虚拟化——物理机迁移至虚拟化

一、安装迁移工具 VMware vCenter Converter Standalone 【安装向导】 【最终用户专利协议】 【最终用户许可协议】 【安装位置】 【安装类型】默认本地安装 【用户体验设置】 【准备安装】 二、迁移 【转换机器】 【源主机】 填ip、用户名和密码 最好是用administ…

训练营四十八天 | 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍 不要忘记空数组和数组长度为1的情况单独考虑 和前两个状态有关 代码随想录 class Solution {public int rob(int[] nums) {if(nums null && nums.length 0) return 0;if(nums.length 1) return nums[0];int[] dp new int[nums.length];//int[] dp …

易观察|2024年金融科技新趋势揭秘,大模型发展有望落地

2023年&#xff0c;是金融科技市场持续向好的一年&#xff0c;受政策和市场的双重推动&#xff0c;金融科技企业信心大增&#xff0c;未来发展信心指数平均分提升到82.8&#xff0c;创下近三年来的新高。而随着市场、政策和经济的企稳预期&#xff0c;以及GPT大模型技术的迅猛发…

【打卡】牛客网:BM90 最小覆盖子串

题目&#xff1a; BM65 最长公共子序列(二)&#xff1a; 找二者的相同部分&#xff0c;该部分对于二者可以不连续排列的&#xff08;但是是有序的&#xff09;。 BM66 最长公共子串 找二者的相同部分&#xff0c;该部分对于二者是连续排列的。 本题&#xff1a;BM90 最小覆盖…

什么是DDOS高防ip?DDOS高防ip是怎么防护攻击的

随着互联网的快速发展&#xff0c;网络安全问题日益突出&#xff0c;DDoS攻击和CC攻击等网络威胁对企业和网站的正常运营造成了巨大的威胁。为了解决这些问题&#xff0c;高防IP作为一种网络安全服务应运而生。高防IP通过实时监测和分析流量&#xff0c;识别和拦截恶意流量&…

PattPatel-“Introduction to Computing Systems“(4)期末样卷题目解析:C语言递归

C语言的递归我觉得最主要的还是要把Patt&Patel的部分好好理解下&#xff08;因为有和硬件结合的部分&#xff09;&#xff0c;但因为今天就考试&#xff08;来不及做这样的事情&#xff09;&#xff0c;先把之前模拟卷的题目给尝试弄明白&#xff0c;然后考完试之后继续学习…

vue-ESlint代码规范及修复

1. 介绍 ESLint:是一个代码检查工具&#xff0c;用来检查你的代码是否符合指定的规则(你和你的团队可以自行约定一套规则)。 在创建项目时&#xff0c;我们使用的是 JavaScript Standard Style 代码风格的规则。 规范网址&#xff1a;https://standardjs.com/rules-zhcn.htm…

美易官方:仅差8万辆,特斯拉2023年全球销量接近奥迪

特斯拉在2023年全球销量仅差8万辆就能追平奥迪&#xff0c;这一消息引起了汽车行业的广泛关注。作为电动汽车市场的领头羊&#xff0c;特斯拉一直以创新的技术和设计引领着汽车行业的发展。而奥迪作为传统豪华汽车品牌&#xff0c;也在不断探索和尝试新的发展路径。 特斯拉在20…

力扣-刷MySQL(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

【五】CocosCreator-CCScheduler.js源码分析

PS&#xff1a;只是看源码学习过程中把认为重要的内容以笔记的形式记录下来。 【1】HashTimerEntry&#xff1a;用于保存指定target的事件定时器相关参数的数据结构。 【2】_hashForTimers&#xff1a;targetId作为key&#xff0c;HashTimerEntry【2】对象作为value的hash数组…

uniApp 顶部导航栏右侧添加文字按钮

{"path" : "pages/allin/MessageCenter/MessageCenter","style" : {"navigationBarTitleText": "消息中心","enablePullDownRef…

torch: 返回最大的几个值--topk()

torch.topk() 是 PyTorch 中的一个函数&#xff0c;用于从张量&#xff08;tensor&#xff09;中选取最大的 k 个值及其对应的索引。这个函数对于需要找到最大值或者对数据进行排序的场景非常有用。 函数的基本语法如下: torch.topk(input, k, dimNone, largestTrue, sortedT…

如何在Eclipse IDE中安装TestNG插件

目录 使用Eclipse Marketplace安装TestNG插件 通过输入URL安装TestNG 1.点击安装新软件 2.输入URL以安装TestNG 3.遵循正常的安装过程 4.重新启动Eclipse 在Eclipse中安装TestNG插件的视频 在这篇文章中&#xff0c;我们将介绍如何在Eclipse IDE中安装TestNG插件&#x…

JVM-Arthas高效的监控工具

一、arthas介绍 3.选择监控哪个进程 4.进入具体进程 二、arthas的基础命令与基本操作 1.查询包含Java的系统属性&#xff1a; 命令&#xff1a;sysprop |grep java 1.查询不含Java的系统属性&#xff1a; 命令&#xff1a;sysprop | grep -v java 3.打印历史命令 命令&#…

Android 自动滚动的RecyclerView,手动滑动和自动滑动无缝衔接,手动滑动时数据不重复

概要 做一个自动滑动的列表&#xff0c;用于展示聊天记录或者通知栏信息等&#xff0c;还是使用主流的RecyclerView来做。网上有很多案例&#xff0c;但当手动滑动时会一直无限循环&#xff0c;数据重复的出现&#xff0c;如果想要自动滑动时能无限循环&#xff0c;手动滑动时又…

Vue Grid Layout ( 栅格布局 )

Vue Grid Layout -️ 适用 Vue.js 的栅格布局系统 (相关使用记录) 参考文章~朴&#xff1a;shu参考文章我说爱你啊中文文档官方文档 安装 npm install vue-grid-layout --save 或yarn add vue-grid-layout导入组件 import VueGridLayout from vue-grid-layout;注册组件 expor…

C语言从入门到实战——结构体与位段

结构体与位段 前言一、结构体类型的声明1.1 结构体1.1.1 结构的声明1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明1.3 结构的自引用 二、 结构体内存对齐2.1 对齐规则2.2 为什么存在内存对齐2.3 修改默认对齐数 三、结构体传参四、 结构体实现位段4.1 什么是位段4.2 位段…