常用正则脚本

正则表达式是一种用来匹配文本模式的强大工具。它可以用于各种任务,例如:

  • 验证数据
  • 提取信息
  • 替换文本

以下是一些常用的正则案例:

1. 验证数据

正则表达式可以用于验证数据,例如:

  • 验证日期格式
  • 验证数字范围
  • 验证邮箱地址

验证日期格式

1
^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$

这个正则表达式匹配格式为 YYYY-MM-DD 的日期。

验证数字范围

1
^[0-9]{1,}$

这个正则表达式匹配任何由 1 到无穷多个数字组成的字符串。

验证邮箱地址

1
^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]+$

这个正则表达式匹配格式为 user@domain.com 的邮箱地址。

2. 提取信息

正则表达式可以用于提取信息,例如:

  • 提取 URL 中的域名
  • 提取 HTML 文档中的标签
  • 提取文本中的数字

提取 URL 中的域名

1
^https?://[a-zA-Z0-9-]+\.[a-zA-Z]+$

这个正则表达式匹配 https://http:// 开头,由字母、数字、减号组成的域名。

提取 HTML 文档中的标签

1
<(.+?)>

这个正则表达式匹配 < 开头,由任意字符组成的字符串,再跟随 > 结尾。

提取文本中的数字

1
^[0-9]+$

这个正则表达式匹配由 1 到无穷多个数字组成的字符串。

3. 替换文本

正则表达式可以用于替换文本,例如:

  • 替换所有空格为下划线
  • 替换所有数字为字母
  • 替换所有标点符号为空格

替换所有空格为下划线

1
\s+ -> _

这个正则表达式匹配任意多个空格,并将其替换为 _

替换所有数字为字母

1
[0-9] -> [a-z]

这个正则表达式匹配任何数字,并将其替换为任意字母。

替换所有标点符号为空格

1
[\p{P}] -> 

这个正则表达式匹配任何标点符号,并将其替换为空格。

以下是一些具体的案例:

案例 1:验证用户名

1
2
3
4
function validateUsername(username) {
const regex = /^[a-zA-Z0-9_.]{6,20}$/;
return regex.test(username);
}

这个函数使用正则表达式 /^[a-zA-Z0-9_.]{6,20}$/ 来验证用户名。该正则表达式匹配由 6 到 20 个字符组成的字符串,其中可以包含字母、数字、下划线和句点。

案例 2:提取 HTML 文档中的链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function extractLinks(html) {
const regex = /\s*<a\s+href="(.*?)"\s*>(.*?)</a>\s*/g;
const matches = regex.exec(html);

const links = [];
while (matches) {
links.push({
href: matches[1],
text: matches[2],
});
matches = regex.exec(html);
}

return links;
}