"正则表达式是编程语言中用于处理字符串的强大工具,广泛应用于数据验证、文本处理等领域。本文将详细介绍一系列常用的正则表达式及其应用场景。
1. 邮箱验证:邮箱验证通常使用类似`^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`的正则表达式,它能匹配大部分常见格式的电子邮件地址。
2. 手机验证:在中国,手机号码通常由11位数字组成,可以使用`^1[3-9]\d{9}$`的正则进行验证。
3. 统一空格个数:使用`\s+`正则可以匹配连续的空格,并用`replace()`方法替换为单个空格,从而统一空格数量。
4. 判断字符串是否全由数字组成:`^\d+$`正则表达式可检查字符串是否仅包含数字。
5. 电话号码验证:不同地区的电话号码格式各异,但通常会包括多个数字段,如中国的电话号码可使用`^(\+\d{1,2}\s?)?1\d{10}$`进行验证。
6. 删除字符串中的空格:`str.replace(/\s/g, "")`可以移除字符串中的所有空格。
7. 限制输入:例如,限制输入数字和小数点,可以使用`/^-?\d+(\.\d)?$/.test(input)`来验证。
8. 替换小数点前内容:`str.replace(/^[^\.]+/, replacement)`可以替换小数点前的任意内容。
9. 只匹配中文:`/^[\u4e00-\u9fa5]+$/`正则可以确保字符串仅包含中文字符。
10. IP地址匹配:`/(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地址。
11. 匹配HTML标签内容:如`/<ul>(.*?)<\/ul>/`可以获取`<ul>`与`</ul>`之间的文本。
12. 文件名提取:`/(.*?)(\.[^.]*)?$`可以匹配文件的基本名称和扩展名。
13. 绝对路径变相对路径:这涉及到路径解析,正则配合编程逻辑可以实现这一转换。
14. 用户名验证:一般要求用户名只能包含字母、数字、下划线,如`/^[a-zA-Z0-9_]{1,}$/`。
15. 英文地址匹配:`/^[A-Za-z0-9\s,.'-]+$/`可以匹配英文地址的常见格式。
16. 价格匹配:`^\d+(\.\d+)?$`可以匹配数字或带有小数点的数字,用于价格验证。
17. 身份证号码验证:中国身份证号通常使用`^\d{15}|\d{18}$`或考虑校验位的更复杂正则。
18. 文本行数限制:通过正则配合字符串分割可以实现。
19. 单词首字母大写:`str.replace(/\b\w+\b/g, function(word) { return word.charAt(0).toUpperCase() + word.slice(1); })`可以将每个单词首字母转为大写。
20. 日期格式验证:`/^\d{4}-\d{2}-\d{2}$`匹配如`YYYY-MM-DD`的日期格式。
21. 去掉文件后缀名:`name.replace(/\.[^.]*/, '')`可以去除文件名后的扩展名。
22. 匹配并提取链接:`/<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)\1[^>]*>(.*?)<\/a>/gi`可以匹配HTML中的链接。
23. 判断标签是否闭合:正则表达式无法直接判断,需要结合编程逻辑。
24. 获取指定标签内容:如`/<tag>(.*?)<\/tag>/`可以匹配到`<tag>`标签内的内容。
25. 数字与字母混合验证:`/^[a-zA-Z0-9]+$/`匹配字母与数字的组合。
26. 空格与英文同时存在:`/^[a-zA-Z\s]+$/`可以匹配仅包含英文字符和空格的字符串。
27. 正则匹配部分:`match()`或`exec()`方法可以获取正则匹配的内容。
28. 正则替换:`replace()`方法配合正则可以替换字符串中符合模式的部分。
以上只是正则表达式的一部分应用,实际开发中还有更多复杂的用途,如XML/HTML解析、数据清洗、表单验证等。熟练掌握正则表达式,能极大提升在文本处理方面的效率和准确性。"