JavaScript 常用正则表达式大全:匹配、验证与替换294


JavaScript 中的正则表达式是一种强大的文本处理工具,用于匹配、验证和替换字符串中的特定模式。熟练掌握正则表达式能够极大地提高 JavaScript 代码的效率和可读性。本文将介绍一些常用的 JavaScript 正则表达式,并结合实例进行讲解,帮助读者快速上手并应用于实际开发中。

一、基本语法

JavaScript 正则表达式使用斜杠 `/` 包裹模式,例如 `/abc/` 匹配字符串 "abc"。 `i` 标志表示不区分大小写匹配,`g` 标志表示全局匹配,`m` 标志表示多行匹配。例如,`/abc/i` 匹配 "abc"、"Abc"、"ABC" 等;`/abc/g` 会匹配字符串中所有出现的 "abc";`/^abc$/m` 会匹配每一行以 "abc" 开头并以 "abc" 结尾的字符串。

二、常用元字符

元字符是具有特殊含义的字符,它们构成了正则表达式的核心。以下是部分常用元字符:
.:匹配除换行符外的任意字符。
\d:匹配数字 [0-9]。
\D:匹配非数字。
\w:匹配字母、数字或下划线。
\W:匹配非字母、数字或下划线。
\s:匹配空格、制表符等空白字符。
\S:匹配非空白字符。
[]:匹配方括号内任意一个字符,例如 `[abc]` 匹配 "a"、"b" 或 "c"。 `[a-z]` 匹配任意小写字母, `[0-9]` 匹配任意数字。
[^...]:匹配除方括号内字符外的任意字符,例如 `[^abc]` 匹配除 "a"、"b"、"c" 外的任意字符。
^:匹配字符串的开头。
$:匹配字符串的结尾。
*:匹配前面字符零次或多次。
+:匹配前面字符一次或多次。
?:匹配前面字符零次或一次。
{n}:匹配前面字符 n 次。
{n,}:匹配前面字符至少 n 次。
{n,m}:匹配前面字符 n 到 m 次。
|:或操作,例如 `abc|def` 匹配 "abc" 或 "def"。
():分组,例如 `(abc){2}` 匹配 "abcabc"。
\:转义字符,例如 `\.` 匹配点号。


三、常用正则表达式示例

1. 验证邮箱地址: `/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/` 这是一个简单的邮箱验证正则表达式,实际应用中可能需要更复杂的规则。

2. 验证手机号: `/^1[3-9]\d{9}$/` 匹配以 1 开头,后面跟着 10 位数字的手机号。 注意:这只是一个简单的示例,实际应用中需要根据不同运营商的号码段进行调整。

3. 匹配URL: `/^(https?:/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/` 这是一个相对复杂的 URL 匹配正则表达式,可以匹配大部分的 URL 地址。

4. 提取数字: `/\d+/g` 这个表达式可以提取字符串中所有数字。

5. 替换空格: `/ /g` 可以使用 `replace()` 方法结合这个表达式替换所有空格。

6. 验证身份证号码(18位): `/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/` 这是一个较为复杂的身份证号码验证正则表达式,注意校验码的验证需要额外处理。

四、JavaScript 中的使用

JavaScript 提供了 `RegExp` 对象来创建和使用正则表达式。可以使用字面量方式或构造函数方式创建正则表达式:
// 字面量方式
let regExp = /abc/;
// 构造函数方式
let regExp = new RegExp("abc");

常用的方法包括:
test():测试字符串是否匹配正则表达式,返回布尔值。
exec():执行搜索,返回一个数组,包含匹配结果和索引等信息。
match():查找字符串中所有匹配正则表达式的子字符串,返回一个数组。
replace():替换字符串中匹配正则表达式的部分。
search():返回字符串中第一个匹配正则表达式的索引。


五、总结

本文介绍了 JavaScript 中常用的正则表达式语法和一些实际应用示例。 正则表达式是一个强大的工具,但同时也是比较复杂的。 建议读者在实际应用中,根据需要选择合适的正则表达式,并结合 JavaScript 提供的方法进行灵活运用。 为了避免过于复杂的正则表达式难以维护,建议将复杂的匹配逻辑拆分成多个简单的正则表达式,提高代码的可读性和可维护性。 此外,在线正则表达式测试工具可以帮助你快速验证和调试你的正则表达式。

2025-05-13


上一篇:Java与JavaScript闭包的异同深度解析

下一篇:JavaScript创建对象的3种核心方法及深入解析