JavaScript正则表达式实战:从基础到高级应用
需积分: 9 188 浏览量
更新于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()`方法结合正则表达式替换字符串中的特定变量。
以上仅为部分示例,正则表达式的应用广泛且灵活,可以解决许多字符串处理问题。掌握正则表达式对于提升编程技能至关重要。
2022-08-08 上传
2010-11-09 上传
2014-08-04 上传
2024-04-08 上传
2023-09-07 上传
2023-05-14 上传
2024-03-23 上传
2023-11-15 上传
2023-12-28 上传
我可能是个假开发
- 粉丝: 516
- 资源: 2
最新资源
- 明日知道社区问答系统设计与实现-SSM框架java源码分享
- Unity3D粒子特效包:闪电效果体验报告
- Windows64位Python3.7安装Twisted库指南
- HTMLJS应用程序:多词典阿拉伯语词根检索
- 光纤通信课后习题答案解析及文件资源
- swdogen: 自动扫描源码生成 Swagger 文档的工具
- GD32F10系列芯片Keil IDE下载算法配置指南
- C++实现Emscripten版本的3D俄罗斯方块游戏
- 期末复习必备:全面数据结构课件资料
- WordPress媒体占位符插件:优化开发中的图像占位体验
- 完整扑克牌资源集-55张图片压缩包下载
- 开发轻量级时事通讯活动管理RESTful应用程序
- 长城特固618对讲机写频软件使用指南
- Memry粤语学习工具:开源应用助力记忆提升
- JMC 8.0.0版本发布,支持JDK 1.8及64位系统
- Python看图猜成语游戏源码发布