JavaScript正则表达式实战:从基础到高级应用

需积分: 9 0 下载量 172 浏览量 更新于2024-07-20 收藏 284KB PDF 举报
"正则表达式相关实战技巧和应用场景" 正则表达式是编程语言中用于处理字符串的强大工具,能够进行复杂的模式匹配、查找、替换等操作。在JavaScript中,正则表达式尤为常用,本资源集合了多个实战示例,涵盖了从基础到进阶的多种应用场景。 1. **匹配结尾的数字**: 使用`\d+$`正则表达式可以匹配字符串末尾的连续数字。例如:`30CAC0040`和`3SFASDF92`,最后的`40`和`92`会被匹配。 2. **统一空格个数**: 当字符串中有不一致的空格数量时,可以使用`\s+`正则来匹配所有连续的空格,并用`replace()`函数替换为一个空格。例如,将多行文本合并为单行。 3. **判断字符串是否全由数字组成**: 可以使用正则`^\d+$`来检查字符串是否完全由数字组成。如果整个字符串都符合这个模式,那么它就是全数字的。 4. **电话号码正则**: 正则表达式可能因地区而异,但通常会包括数字、破折号或括号。例如,美国电话号码的常见正则可能是`\d{3}-\d{3}-\d{4}`。 5. **手机号码正则**: 各国的手机号码格式不同,中国手机号码一般为11位数字,如`\d{11}`,但也可以加入更多限制,如`^1[3-9]\d{9}$`,确保以1开头且排除130-139等老号段。 6. **删除字符串中的空格**: 使用`/\s+/g`正则可以全局匹配并删除所有空格。 7. **限制文本框输入**: 例如,只允许输入数字和小数点,可以使用`/^[0-9]+(\.[0-9]+)?$/`的正则。 8. **替换小数点前内容**: 若要替换小数点前的内容,可以先找到数字和小数点,然后替换前部,例如`/(.*?\.)/`。 9. **只匹配中文的正则**: `[\u4e00-\u9fa5]`用来匹配单个中文字符。 10. **返回字符串的中文字符个数**: 通过遍历字符串并用上述中文正则测试每个字符,可计算中文字符数量。 11. **匹配IP地址前三段**: 使用`\d+\.\d+\.\d+`可以匹配IP地址前三部分。 12. **匹配HTML标签内容**: 例如,`/<ul>(.*?)<\/ul>/s`可以抓取`<ul>`与`</ul>`之间的所有内容。 13. **获取文件名**: 使用`/(\/|\\)([^\/\\]+)$/`可以从URL或路径中提取文件名。 14. **绝对路径转相对路径**: 这通常涉及字符串处理而非正则,但正则可以帮助去除路径中的某些部分。 15. **用户名正则**: 用户名通常限制为字母、数字和下划线,如`/^[a-zA-Z0-9_]+$/`。 16. **匹配英文地址**: 英文地址通常包含字母、数字、空格和逗号,正则可能包括`/^[A-Za-z0-9\s,]+$/`。 17. **匹配价格**: 匹配带有货币符号的价格,如`/\$\d+(\.\d+)?/`。 18. **身份证号码匹配**: 身份证号码有特定的规则,例如中国大陆的身份证号为18位,可以使用`^\d{15}|\d{18}$`。 19. **单词首字母大写**: 使用正则配合`toUpperCase()`和`slice()`可以实现。 20. **验证日期格式**: 如`/^\d{4}-\d{2}-\d{2}$/`可匹配`YYYY-MM-DD`格式。 21. **去掉文件后缀名**: `/(.*?)[.][^.]+$/$1/`可用于移除文件名的后缀。 22. **匹配源代码链接**: 识别HTML中的`<a>`标签并提取其href属性,如`/<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)\1/gi`。 23. **判断标签是否闭合**: 通过正则检查标签是否正确关闭,如`/<(\/)?([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>/`。 24. **获取指定标签内容**: 使用正则匹配标签内的文本,例如`/<tag>(.*?)<\/tag>/s`。 25. **数字与字母混合**: `/[a-zA-Z0-9]+/`可以匹配字母和数字的组合。 26. **空格与英文共存**: 如果希望保留英文单词间的空格,可以用`\b`边界匹配。 27. **显示或保存匹配内容**: `match()`或`exec()`方法可以获取匹配的结果。 28. **正则替换变量**: 用`replace()`方法结合正则表达式替换字符串中的特定变量。 以上仅为部分示例,正则表达式的应用广泛且灵活,可以解决许多字符串处理问题。掌握正则表达式对于提升编程技能至关重要。