以下是一些复杂但有用的 JavaScript 正则表达式,它们可以帮助解决不同场景下的文本处理需求:
1. 验证电子邮件地址
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
用途:匹配有效的电子邮件地址。此正则支持常见的电子邮件格式,但不适用于所有可能的电子邮件规则。
2. 验证URL
const urlRegex = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i;
用途:匹配有效的 HTTP、HTTPS 或 FTP 协议的 URL。
3. 匹配IP地址(IPv4)
const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
用途:匹配有效的 IPv4 地址。
4. 匹配时间(HH:MM:SS)
const timeRegex = /^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;
用途:匹配有效的时间格式(小时:分钟:秒),例如 14:25:36。
5. 验证日期格式(YYYY-MM-DD)
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
用途:匹配日期格式 YYYY-MM-DD,例如 2024-12-05。
6. 匹配合法的信用卡号(Luhn算法验证)
const creditCardRegex = /^(\d{4}[- ]){3}\d{4}|\d{16}$/;
用途:匹配16位的信用卡号,格式为 1234-5678-1234-5678 或无分隔符 1234567812345678。
7. 匹配中文字符
const chineseRegex = /[\u4e00-\u9fa5]/g;
用途:匹配字符串中的中文字符。
8. 提取HTML标签中的内容(例如 <title> 标签)
const titleRegex = /<title>(.*?)<\/title>/i;
用途:提取 HTML 文档中 <title> 标签内的内容。
9. 匹配文件路径
const filePathRegex = /^(\/?[\w-]+\/)*[\w-]+\.(jpg|jpeg|png|gif|bmp|tiff)$/;
用途:匹配特定文件类型的路径,支持 .jpg, .jpeg, .png, .gif, .bmp, .tiff 文件。
10. 匹配并提取电话号码(包括国家代码)
const phoneRegex = /^\+?(\d{1,3})?(\d{10})$/;
用途:匹配电话号码,支持带有可选的国家代码。
11. 匹配正整数(不包括零)
const positiveIntegerRegex = /^(?!0(\.0+)?$)(\d+(\.\d+)?|\.\d+)$/;
用途:匹配正整数(不包括零)。
12. 密码强度(至少8个字符,包含大小写字母、数字和特殊字符)
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
用途:验证密码强度。要求至少8个字符,包含小写字母、大写字母、数字和特殊字符。
13. 匹配所有数字(包括小数点)
const numberRegex = /^[+-]?(\d+(\.\d+)?|\.\d+)$/;
用途:匹配正数、负数或小数。
14. 匹配HTML中的所有链接(<a href> 标签)
const linksRegex = /<a\s+(?:[^>]*?\s+)?href="([^"]*)"/g;
用途:匹配 HTML 文档中的所有 <a> 标签,并提取其中的 href 属性值。
15. 去除字符串中的多余空格(保留单词之间的空格)
const trimSpacesRegex = /\s+/g;
用途:将多个连续的空格替换为单个空格。
以下是更多复杂且实用的正则表达式:
16. 匹配包含数字、字母和下划线的变量名(如JavaScript变量名)
const variableNameRegex = /^[a-zA-Z_]\w*$/;
用途:验证是否是合法的变量名(不以数字开头)。
17. 匹配多个邮箱地址(用逗号或分号分隔)
const multipleEmailRegex = /^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})([;,]\s*[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})*$/;
用途:匹配多个以逗号或分号分隔的电子邮件地址。
18. 提取数字(包括整数和小数)
const extractNumberRegex = /-?\d+(\.\d+)?/g;
用途:从字符串中提取所有数字,包括正负整数和小数。
19. 匹配 Markdown 标题
const markdownHeaderRegex = /^(#{1,6})\s+(.*)$/gm;
用途:匹配 Markdown 格式的标题,支持从 # 到 ######。
20. 匹配HTML注释
const htmlCommentRegex = /<!--([\s\S]*?)-->/g;
用途:匹配 HTML 中的注释内容。
21. 匹配CSS中的颜色代码(十六进制格式)
const hexColorRegex = /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/;
用途:匹配 CSS 文件或样式中以 # 开头的颜色代码,例如 #FFF 或 #A1B2C3。
22. 匹配YouTube视频链接
const youtubeLinkRegex = /^(https?:\/\/)?(www\.)?(youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]{11})$/;
用途:匹配 YouTube 视频链接,并提取视频 ID。
23. 提取文件扩展名
const fileExtensionRegex = /\.(\w+)$/;
用途:从文件名中提取扩展名,例如从 example.txt 提取 txt。
24. 验证身份证号(中国大陆 18 位格式)
const idCardRegex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
用途:匹配合法的中国身份证号(18 位格式)。
25. 匹配货币金额(支持千位分隔符)
const currencyRegex = /^\$?(([1-9]\d{0,2}(,\d{3})*)|0)?(\.\d{1,2})?$/;
用途:匹配货币格式,如 $1,234.56 或 1234.56。
26. 匹配HTML中所有图片的src属性
const imgSrcRegex = /<img\s+[^>]*src="([^"]+)"[^>]*>/g;
用途:从 HTML 文档中提取所有图片的 src 链接。
27. 匹配重复单词(如 “the the”)
const duplicateWordRegex = /\b(\w+)\s+\1\b/g;
用途:匹配连续重复的单词,适用于检查文章中的重复错误。
28. 匹配仅包含字母和数字的字符串
const alphanumericRegex = /^[a-zA-Z0-9]+$/;
用途:匹配仅由字母和数字组成的字符串。
29. 提取括号中的内容
const parenthesesContentRegex = /\(([^)]+)\)/g;
用途:提取括号中的内容,例如从 Hello (World) 提取 World。
30. 匹配逗号分隔的CSV字段
const csvFieldRegex = /(?:^|,)(?:"([^"]*)"|([^",]*))/g;
用途:解析 CSV 文件中的字段,包括双引号内的值。
31. 匹配特定开头和结尾的字符串
const startEndRegex = /^start.*end$/;
用途:匹配以 start 开头并以 end 结尾的字符串。
32. 匹配Unicode字符(如 emoji)
const unicodeRegex = /[\u{1F600}-\u{1F64F}]/u;
用途:匹配 Unicode 字符,如表情符号。
33. 校验手机号(中国大陆)
const phoneRegexChina = /^1[3-9]\d{9}$/;
用途:验证中国大陆的 11 位手机号码。
34. 删除所有标点符号
const punctuationRegex = /[.,\/#!$%\^&\*;:{}=\-_`~()]/g;
用途:删除字符串中的所有标点符号。

560

被折叠的 条评论
为什么被折叠?



