欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > JavaScript 正则表达式全面指南

JavaScript 正则表达式全面指南

2025/3/9 10:07:18 来源:https://blog.csdn.net/guapilixianghe/article/details/146059824  浏览:    关键词:JavaScript 正则表达式全面指南

1. 正则表达式基础

1.1 创建正则表达式
  • 字面量形式

    const regex = /pattern/flags;
    • pattern:正则表达式的模式。

    • flags:标志(可选),如 g(全局匹配)、i(忽略大小写)、m(多行匹配)。

  • 构造函数形式

    const regex = new RegExp('pattern', 'flags');
    • pattern:正则表达式的模式(字符串形式)。

    • flags:标志(可选)。

1.2 正则表达式的组成部分
  • 普通字符:如字母、数字、空格等。

  • 元字符:具有特殊含义的字符,如 .*+? 等。

  • 量词:指定匹配字符的数量,如 {n}{n,}{n,m}

  • 字符类:匹配一组字符,如 [abc][^abc]

  • 分组和捕获:使用 () 进行分组和捕获。

  • 断言:如 ^(开头)、$(结尾)、\b(单词边界)。


2. 基本元字符

元字符描述
.匹配除换行符(\n)以外的任意字符。
\d匹配数字字符(等价于 [0-9])。
\D匹配非数字字符(等价于 [^0-9])。
\w匹配字母、数字或下划线(等价于 [a-zA-Z0-9_])。
\W匹配非字母、数字或下划线的字符(等价于 [^a-zA-Z0-9_])。
\s匹配空白字符(包括空格、制表符、换行符等)。
\S匹配非空白字符。
^匹配字符串的开头。
$匹配字符串的结尾。
\b匹配单词边界。
\B匹配非单词边界。

3. 字符类

元字符描述
[]匹配括号内的任意一个字符(如 [abc] 匹配 "a"、"b" 或 "c")。
[^]匹配不在括号内的任意一个字符(如 [^abc] 匹配非 "a"、"b"、"c" 的字符)。

4. 量词

元字符描述
*匹配前面的字符 0 次或多次。
+匹配前面的字符 1 次或多次。
?匹配前面的字符 0 次或 1 次。
{n}匹配前面的字符恰好 n 次。
{n,}匹配前面的字符至少 n 次。
{n,m}匹配前面的字符至少 n 次,至多 m 次。
*?非贪婪匹配,尽可能少地匹配。
+?非贪婪匹配,尽可能少地匹配。
??非贪婪匹配,尽可能少地匹配。

5. 分组和捕获

元字符描述
()捕获组,用于分组和提取匹配的内容。
(?:)非捕获组,仅用于分组,不捕获匹配内容。
(?=)正向先行断言,匹配后面跟随指定模式的位置。
(?!)负向先行断言,匹配后面不跟随指定模式的位置。
(?<=)正向后行断言,匹配前面是指定模式的位置。
(?<!)负向后行断言,匹配前面不是指定模式的位置。
(?<name>)命名捕获组,为捕获组命名。

6. 转义字符

元字符描述
\转义字符,用于匹配特殊字符本身(如 \. 匹配句点)。

7. 其他元字符

元字符描述
``表示“或”关系(如 `ab` 匹配 "a" 或 "b")。
\n匹配换行符。
\t匹配制表符。
\r匹配回车符。
\f匹配换页符。
\v匹配垂直制表符。

8. Unicode 相关

元字符描述
\uXXXX匹配 Unicode 字符(如 \u0041 匹配 "A")。
\p{}匹配 Unicode 属性(需启用 u 标志,如 \p{Letter} 匹配任意字母)。
\P{}匹配不满足 Unicode 属性的字符。

9. 标志(Flags)

标志描述
g全局匹配(查找所有匹配项,而不是在第一个匹配项后停止)。
i忽略大小写。
m多行匹配(使 ^ 和 $ 匹配每行的开头和结尾)。
u启用 Unicode 匹配(支持处理 Unicode 字符)。
y粘性匹配(从 lastIndex 开始匹配,且必须从该位置开始匹配成功)。
s单行模式(使 . 匹配包括换行符在内的所有字符)。

10. 示例

10.1 匹配邮箱
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRegex.test("test@example.com")); // 输出: true
10.2 匹配手机号
const phoneRegex = /^1[3-9]\d{9}$/;
console.log(phoneRegex.test("13800138000")); // 输出: true
10.3 提取 URL
const urlRegex = /https?:\/\/[^\s]+/;
console.log("Visit https://example.com".match(urlRegex)); // 输出: ["https://example.com"]
10.4 替换敏感词
const sensitiveRegex = /bad|naughty/gi;
console.log("This is a bad word.".replace(sensitiveRegex, "***")); // 输出: "This is a *** word."
10.5 捕获日期
const regex = /(\d{4})-(\d{2})-(\d{2})/;
console.log('2024-10-15'.match(regex)) //输出: '2024-10-15'

11. 总结

JavaScript 正则表达式的元字符是定义匹配模式的核心工具。以下是元字符的分类:

  1. 基本元字符:如 .\d\w^$ 等。

  2. 字符类:如 [][^]

  3. 量词:如 *+?{n} 等。

  4. 分组和捕获:如 ()(?:)(?=) 等。

  5. 转义字符:如 \

  6. 其他元字符:如 |\n\t 等。

  7. Unicode 相关:如 \uXXXX\p{}\P{}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词