如何掌握JavaScript中的正则表达式基础知识?
创始人
2025-02-13 21:33:08
0
正则表达式是一种用于匹配字符串的模式,它可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个字符串中取出符合某个条件的子串等。

匹配字符集

| 语法 | 匹配 | 示例 |

|---|---|---|

|. | 匹配任意字符(除了`

如何掌握JavaScript中的正则表达式基础知识?

) | 表达式:.` 匹配任意一个字符 |

|[...] | 匹配字符集(... 表示任意字符) | 表达式:[a-zA-Z] 匹配任意一个小写或大写的字母。
表达式:[iHTC] 匹配 "i", "H", "T" 和 "C"。
表达式:[e-k] 匹配 "e" 到 "k" 之间的字符。|

|\d | 匹配数字 | 表达式:a\d,匹配字符串 "aaa123" 中的a1
表达式:a.\d,匹配字符串 "aaa123" 中的aa1 。|

|\D | 匹配非数字 | 表达式:a.\D,匹配字符串 "aaa123" 中的aaa 。|

|\s | 匹配空白字符(包括空格、制表符、换页符等空白字符,`[ \t

\r\f]) | 表达式:a.\s,匹配字符串 "aaa 123" 中的aa `(最后是空格) 。|

|\S | 匹配非空白字符 | 表达式:a.\S,匹配字符串 "aaa 123" 中的aaa 。|

|\w | 匹配单词字符([a-zA-Z0-9_]和汉字) | 表达式:a.\w,匹配字符串 "aaa 123" 中的aaa 。|

|\W | 匹配非单词字符 | 表达式:a.\W,匹配字符串 "aaa 123" 中的aa(最后是空格) 。|

|\ | 转义字符 |\r, `

代表回车和换行符;\t 制表符;\\ 代表 "\" 本身;\^ 匹配 ^ 符号本身;\$ 匹配 $ 符号本身;\.` 匹配小数点(.)本身。 |

匹配量词(Quantifier)

语法 匹配 示例
匹配表达式出现 0次或者无限次,相当于 {0,} 表达式:a,匹配字符串 "aaa123" 中的aaa
+ 匹配表达式至少出现 1次或者无限次,相当于 {1,} 表达式:a+,匹配字符串 "aaa123" 中的aaa
? 匹配表达式 0次或者 1次,相当于 {0,1} 表达式:a?,匹配字符串 "aaa123" 中的a
{m,n} 匹配表达式至少重复 m 次,最多重复 n 次 表达式:a{1,2},匹配字符串 "aaa123" 中的aa
{m} 匹配表达式重复 m 次 表达式:a{3},匹配字符串 "aaa123" 中的aaa
{m,} 匹配表达式至少重复 m 次 表达式:a{1,},匹配字符串 "aaa123" 中的aaa
*? 匹配模式变为非贪婪(尽可能少匹配字符),匹配表达式可以为 0次,也可以是无限次 表达式:a[0-9]*?23',匹配字符串 "aaa123" 中的a123
如果匹配字符串 "aaa23" 则为a23
如果匹配字符串 "aaa456123" 则为a456123
+? 匹配模式变为非贪婪(尽可能少匹配字符),匹配表达式至少 1次,也可以是无限次 表达式:a[0-9]+?23,匹配字符串 "aaa123" 中的a123
如果匹配字符串 "aaa23" 则匹配失败 。
如果匹配字符串 "aaa456123" 则为a456123
?? 匹配模式变为非贪婪(尽可能少匹配字符),匹配表达式最多 1次,也可以是 0次 表达式:a[0-9]??23,匹配字符串 "aaa123" 中的a123
如果匹配字符串 "aaa23" 则为a23
如果匹配字符串 "aaa456123" 则匹配失败。
{m,n}? 非贪婪模式,匹配符合的最短的字符串 表达式:a[0-9]{1,4}?23,匹配字符串 "aaa123" 中的a123
如果匹配字符串 "aaa23" 则匹配失败 。
如果匹配字符串 "aaa456123" 则为a456123

匹配边界

语法 匹配 示例
^ 匹配字符串开头 表达式:^\d 表示必须以数字开头。
表达式:[^abc] 匹配a,b,c 之外的任意一个字符。
$ 匹配字符串结尾 表达式:*.com$ 匹配 .com 结尾的字符串。
\d$表示必须以数字结束。
\A 指定的字符串匹必须出现在开头 表达式:\Aa,匹配字符串 "aaa123" 中的a
\Z 指定的字符串匹必须出现在结尾,如果是存在换行,只匹配到换行前的结束字符串。 表达式:\d\Z,匹配字符串 "aaa123" 中的3
\b 匹配一个单词边界,但只在单词开始或结尾的位置,即匹配\w\W之间。(本身不匹配任何字符) 表达式:\b4,匹配字符串 "aaa123 456" 中的4
表达式:\b5,匹配字符串 "aaa123 456" 则为失败。
\B 匹配非单词边界,但不能在词的开头或者结尾,即匹配[^\b]。(本身不匹配任何字符) 表达式:\B4,匹配字符串 "aaa123 456" 则为失败。
表达式:\B5,匹配字符串 "aaa123 456" 中的5

匹配条件分组

语法 匹配 示例
或关系,匹配左右任意一个表达式 表达式:a⎮b,匹配字符串 "aaa123" 中的a
(ab) 括号中表达式作为一个分组 表达式:(ab),匹配字符串 "aaa123" 中的ab

相关问题与解答栏目

问题1: 如果我想验证一个字符串是否以数字开头,应该如何编写正则表达式?

答:可以使用^\d 这个正则表达式来验证一个字符串是否以数字开头,这里的^ 表示字符串的开始,而\d 表示任意数字,这个正则表达式会匹配任何以数字开头的字符串,对于字符串 "123abc",它会成功匹配;但对于字符串 "abc123",它不会匹配。

问题2: 如果我想从一段文本中提取所有的邮箱地址,我应该使用什么正则表达式?

答:你可以使用以下正则表达式来匹配大多数常见的邮箱地址格式:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b,这个正则表达式包含了几个部分:

\b[A-Za-z0-9._%+-]+:匹配邮箱地址的用户部分,可以包含字母、数字、点、下划线、百分号、加号和减号。

@:匹配 @ 符号。

[A-Za-z0-9.-]+:匹配域名的主体部分和顶级域的初始部分,可以包含字母、数字、点和连字符。

\.[A-Z|a-z]{2,}:匹配顶级域后缀,如 .com、.org 等,必须以点开始,后面跟着两个或更多的字母。

\b:确保邮箱地址的边界不被包含在其他单词中。

这个正则表达式能够捕获大多数标准格式的邮箱地址,但请注意,由于邮箱地址的复杂性和多样性,可能无法捕获所有有效的邮箱地址。

小伙伴们,上文介绍了“javascript学习笔记(五)正则表达式-基础知识”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

相关内容

热门资讯

实操分享!(海浪手游)软件透明... 您好,海浪手游这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏...
必看攻略!德扑之星发牌(软件透... 必看攻略!德扑之星发牌(软件透明挂)Wepoke胜率原来是真的有挂(2020已更新)(哔哩哔哩);致...
重大通报!麻辣竞技辅助器下载(... 重大通报!麻辣竞技辅助器下载(辅助挂)太嚣张了原来都是真的有挂(2021已更新)(哔哩哔哩);1.麻...
七分钟了解!兴动互娱修改器免费... 七分钟了解!兴动互娱修改器免费,太明显了原来总是有挂,2025已更新(有挂经验);详细攻略(软件透明...
十分钟了解!(WPK外挂)外挂... 十分钟了解!(WPK外挂)外挂透明挂辅助安装(软件透明挂)原来真实真的是有挂(2022已更新)(哔哩...
一分钟快速了解!(山河娱乐)外... 一分钟快速了解!(山河娱乐)外挂透视挂辅助代打!(辅助挂)辅助挂(2022已更新)(哔哩哔哩);是一...
一分钟了解!wepoke软件透... 一分钟了解!wepoke软件透明挂,太夸张了原来确实是有挂,2024已更新(有挂来袭);wepoke...
盘点十款!欢聚水鱼辅助插件下载... 盘点十款!欢聚水鱼辅助插件下载(辅助挂)太过分了原来是有挂的(2020已更新)(哔哩哔哩);最新版2...
总算清楚!(科乐斗地主)外挂透... 总算清楚!(科乐斗地主)外挂透视挂辅助助手!(辅助挂)透视辅助助手(2023已更新)(哔哩哔哩)是一...
必看攻略!(wpk苹果版)外挂... 您好,wpk苹果版这款游戏可以开挂的,确实是有挂的,需要了解加微【841106723】很多玩家在这款...