JavaScript正则表达式核心语法与常用方法详解

作者:拾光

时间:2026-10-24

浏览:85

本文系统梳理JavaScript中正则表达式的核心语法,涵盖元字符、量词、分组与边界匹配等基础概念,并详细解析search、replace、match及split等字符串处理方法的实际用法与返回值结构,帮助开发者掌握高效文本处理技巧。

文章目录
元字符
^ $ . * + ? = ! : | \ / ( ) [ ] { }

正则表达式元字符与基础匹配

在使用特殊符号时,必须使用反斜杠“\”进行转义处理。


若不确定哪些标点符号需要转义,建议对所有标点符号统一使用反斜杠“\”进行转义,以确保正则表达式正确解析。


简单匹配

1、直接量 /javascript/ 用于匹配包含“javascript”子串的文本,例如字符串“javascript is an object-oriented scripting language”。


2、字符集 /[abc]/ 用于匹配字符“a”、“b”或“c”中的任意一个。


3、否定字符集 /[^abc]/ 用于匹配除“a”、“b”、“c”之外的任意单个字符。


4、通配符 /./ 用于匹配除换行符以外的任意单个字符。


5、单词字符 /\w/ 用于匹配任意ASCII字母、数字或下划线,其功能等价于字符集 [a-zA-Z0-9]。


6、空白符 /\s/ 用于匹配空格、制表符等空白字符。


7、数字 /\d/ 用于匹配0到9之间的数字,其功能等价于字符集 [0-9]。


重复

量词与重复匹配规则

1、量词 {n,m} /[a]{3,5}/ 表示匹配前面的元素至少n次且最多m次,例如“aaa”、“aaaa”或“aaaaa”均符合匹配条件。


2、量词 {n,} /[a]{3,}/ 表示匹配前面的元素至少n次,例如“aaa”、“aaaaa”或更长的连续“a”字符串。


3、量词 {n} /[a]{3}/ 表示精确匹配前面的元素n次,例如仅匹配“aaa”,多一个或少一个字符均不匹配。


4、量词 ? /[a]?/ 表示匹配前面的元素0次或1次,即该元素是可选的。


5、量词 + /[a]+/ 表示匹配前面的元素1次或多次,至少出现一次。


6、量词 * /[a]*/ 表示匹配前面的元素0次或多次,允许不出现。


选择、分组

分组、选择与边界锚点

1、或运算符 | /a|b/ 用于匹配“a”或“b”中的任意一个模式。


2、分组 () /(abc)+/ 用于将多个字符组合为一个单元,例如匹配“abc”或其重复形式“abcabc”等。


位置

1、起始锚点 ^ /^a/ 用于匹配以“a”开头的字符串,例如“ab”或“abc”等。


2、结束锚点 $ /b$/ 用于匹配以“b”结尾的字符串,例如“ab”或“cb”等。


正则表达式标志说明

标志用于控制正则表达式的匹配行为。


1、忽略大小写标志 i /a/i 用于进行不区分大小写的匹配,例如同时匹配“a”和“A”。


2、全局匹配标志 g /b/g 用于查找字符串中所有符合模式的子串,而非仅返回第一个匹配结果。


方法

字符串处理与正则方法应用

1、var ret = “javascript”.search(/script/i) 用于返回第一次匹配子串开始字符的索引位置,若未找到匹配则返回-1。


2、var ret = “javascript”.replace(/java/gi,””) 用于将匹配到的子串替换为函数的第二个参数(此处为空字符串)。


3、var ret = “javascript”.match(/(java)(script)/gi) 用于返回一个包含匹配结果的数组。


ret[0] 包含完整的匹配结果,即“javascript”。


ret[1] 包含第一个括号内匹配的子串,即“java”。


ret[2] 包含第二个括号内匹配的子串,即“script”。


……

4、var ret = “javascript”.split(/a/) 用于以匹配到的子串作为分隔符对字符串进行分割,并返回分割后的数组。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章