千家信息网

项目中常用的正则表达式总结

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"项目中常用的正则表达式总结"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式就
千家信息网最后更新 2025年12月02日项目中常用的正则表达式总结

本篇内容介绍了"项目中常用的正则表达式总结"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示:

1、元字符

[拥有特殊含义的元字符]
\d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是\D ->匹配一个除了0-9的任意字符
\w -> 匹配一个0-9、a-z、A-Z、_的数字或字符,相当于[0-9a-zA-Z_]
\s -> 匹配一个空白字符(空格、制表符...)
\b -> 匹配一个单词的边界
\t -> 匹配一个制表符
\n -> 匹配一个换行
. -> 匹配一个除了\n以外的任意字符
^ -> 以某一个元字符开头
$ -> 以某一个元字符结尾
\ -> 转移字符
x|y -> x或者y的一个
[xyz] -> x、y、z中的任意一个
[^xyz] -> 除了xyz中的任意一个字符
[a-z] -> 匹配a-z中的任意一个字符
[^a-z] -> 匹配除了a-z中的任意一个字符
() -> 正则中的分组

注意:

1)关于[]

a、[+] ->中括号中出现的所有字符都代表的是本身的意思
b、[12-65] ->这个不是12-65而是1/2-6/5三者中的一个

2)关于()

a、分组的作用是改变默认的优先级,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我们认为的18或19,但是改成/^(18|19)$/就是单纯的18或19了
b、可以在捕获大正则匹配的内容同时,把分组匹配的内容也进行捕获->分组捕获
c、分组引用,例如:/^(\d)(\w)\2\1$/,这里的\2是和第二个分组出现一模样的内容,\1是和第一个分组出现一模一样的内容,例如:"0aa0"就符合了

[代表数量的量词元字符]

* -> 0到多个
+ -> 1到多个
? -> 0到1个
{n} -> 出现n次
{n,} -> 出现n到多次
{n,m} -> 出现n到m次

注意:

1)关于?的几种情况

a、放在非量词元字符后面,代表出现0-1次
b、放在量词元字符后面,代表取消捕获时候的贪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正则这样写 reg=/\d+?/; reg.exec("2015") -> "2"
c、在分组开头加?:,代表当前的分组只是匹配不进行捕获,例如:/^(?:\d+)$/
d、在分组开头加?=,正向预查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
e、在分组开头加?!,负向预查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的东西)"都符合

[代表本身意思的元字符]

除了以上的,在字面量方式中,我们出现的其他任意字符代表的都是自己本身的意思

var num=12;
var reg=/^\w"+num+"$/; ->这里"+num+"不是把变量的值拼接,而这里的不管是"还是+都是元字符

->对于需要拼接字符串和变量的方式我们只能使用实例方式创建正则

2、修饰符

i -> ignoreCase 忽略字母的大小写
g -> global 全局匹配 (加上g可以解决正则捕获时候的懒惰性)
m -> multiline 多行匹配

3、项目中常用的正则

1)有效数字的

var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;

2)邮箱的

 var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

3)电话的

 var reg = /^1\d{10}$/;

4)年龄在18-65之间的

 var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;

5)中文姓名

 var reg = /^[\u4e00-\u9fa5]{2,4}$/;

6)身份证

 var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/; //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)

4、正则的匹配

reg.test([string]) ->true就是匹配成功 false->匹配不成功

5、正则的捕获

1)reg.exec([string])

-> 首先去匹配,匹配成功在捕获,返回的是一个数组; 如果匹配不成功返回的是null;
-> 正则的捕获即懒惰又贪婪
-> 解决懒惰性 在正则的末尾增加全局修饰符g
-> 解决贪婪性 在量词后面加?

"项目中常用的正则表达式总结"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

字符 正则 分组 元字符 代表 内容 表达式 成功 开头 数字 量词 常用 项目 懒惰 贪婪 多个 字符串 意思 方式 模式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网营销拾云洞科技 宁波海葵网络技术 政府网络安全工作好吗 海外服务器安全公司 为什么育碧服务器不稳定 通信网络安全吗 专科生学的软件开发好找工作吗 数据库表格如何插入新列 服务器 i5 小学生网络安全情景剧校园剧 贵州省公安厅网络安全保卫总队 游戏服务器硬件配置 消防大队网络安全检查 当今信息与网络安全最大威胁 网络安全防御系统事例 app软件开发有哪些公司 信息与网络安全考研学校 医药进销存管理无法连接数据库 启东自动化电表系统软件开发 望远县软件开发公司价格表 莱芜软件开发公司日企 软件开发就业方向与前景分析 cmd界面为什么无法打开数据库 文件服务器修改权限 服务器管理员名称一般用啥 网络安全宣传视频小学生舞蹈 IBM数据库代表产品 人机对话考试服务器下载 河北网络安全总队贾岩 我的世界有名的服务器
0