JavaScript正则表达式实战指南
需积分: 9 109 浏览量
更新于2024-09-26
收藏 284KB PDF 举报
"正则表达式实战教程,包含多种实用的正则表达式应用场景,旨在提升实际操作能力,而非仅理论讲解。"
正则表达式是编程语言中强大的文本处理工具,广泛应用于数据验证、搜索替换、文本提取等多个领域。在实际应用中,正则表达式能够帮助我们高效地完成各种复杂的文本操作。以下是一些正则表达式的实战应用示例:
1. **匹配结尾的数字**:使用正则表达式`/\d+$/g`可以匹配字符串末尾的一串数字。例如,从"30CAC0040"和"3SFASDF92"中分别取出40和92。
2. **统一空格个数**:通过正则表达式`/\s+/g`可以匹配连续的空格并用空格替换,从而将多个连续空格统一为一个。如将"蓝色\n理想"转化为"蓝色理想"。
3. **判断字符串是否由数字组成**:简单的正则表达式`/^\d+$/`可用于判断字符串是否全由数字构成。如果匹配成功,说明字符串由数字组成。
4. **电话号码正则**:电话号码的正则表达式可能因地区不同而变化,但通常会包含数字和可能的分隔符,如`\d{3}-\d{3}-\d{4}`匹配美国格式的电话号码。
5. **手机号码正则表达式**:中国的手机号码通常为11位数字,正则表达式可以写成`\d{11}`。
6. **删除字符串中的空格**:使用`str.replace(/\s/g, "")`可以去除字符串中的所有空格。
7. **限制文本框输入**:通过正则表达式`/^[0-9.]*$/`可限制输入仅限数字和小数点。
8. **替换小数点前内容**:用`str.replace(/(^\d+\.)/, '指定内容')`可以将小数点前的内容替换为指定内容。
9. **只匹配中文的正则表达式**:`\p{Han}`或`[\u4e00-\u9fa5]`可匹配中文字符。
10. **返回字符串的中文字符个数**:通过正则匹配中文字符并计数可得到中文字符数量。
11. **匹配IP地址前三段**:使用`\d+\.\d+\.\d+`可匹配IPv4地址的前三段。
12. **匹配HTML标签内的内容**:如`/<ul>(.*?)<\/ul>/s`可抓取`<ul>`与`</ul>`之间的内容。
13. **提取文件名**:正则`/(.*?)[\.|\/|$]/`可用于从路径中提取文件名。
14. **绝对路径转相对路径**:这涉及到字符串处理,正则可能不足以完全解决,但可以辅助完成部分步骤。
15. **用户名正则**:通常要求用户名由字母、数字、下划线组成,无空格,可以使用`/^[a-zA-Z0-9_]+$/`。
16. **匹配英文地址**:正则表达式如`\b[a-zA-Z0-9\s]+\b`可以匹配英文地址中的单词。
17. **匹配价格**:正则`\d+(\.\d+)?`可匹配货币格式的价格,包括整数和小数。
18. **身份证号码的匹配**:中国身份证号正则通常为`\d{15}|\d{18}`。
19. **要求文本有指定行数**:这涉及字符串分割,正则表达式可能不直接适用,但结合字符串操作可以实现。
20. **单词首字母大写**:使用正则配合函数可以将每个单词首字母转换为大写。
21. **验证日期格式**:例如验证"YYYY-MM-DD"格式,正则可写作`/\d{4}-\d{2}-\d{2}/`。
22. **去掉文件后缀名**:使用`filename.slice(0, -4)`或正则`/(.*)(\.[^.]+)$/\1/`可去除后缀。
23. **验证邮箱格式**:`/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`是常见的邮箱验证正则。
24. **匹配源代码中的链接**:使用`<a\s+(?:[^>]*?\s+)?href=["']?([^"'>]+)["']?[^>]*>(.*?)<\/a>`可找到HTML中的链接。
25. **匹配链接文字**:正则`(?<=<a).*?(?=</a>)`可提取链接的文字内容。
26. **判断标签是否闭合**:这需要解析HTML,正则可能无法完全准确判断,但能辅助检查。
27. **提取指定标签内容**:如`/<tag>(.*?)<\/tag>/`可获取`<tag>`标签内的内容。
28. **数字与字母混合判断**:`/^[a-zA-Z0-9]+$/.test(input)`可判断字符串是否由字母和数字混合组成。
29. **空格与英文同时存在**:正则`/\b(\w+\s)+\w+\b/`匹配含有空格的英文单词。
30. **显示或保存匹配内容**:在编程环境中,可使用match或exec方法获取匹配到的内容。
31. **正则替换变量**:`str.replace(/oldVariable/g, 'newVariable')`可全局替换字符串中的变量。
32. **替换属性值**:如`html.replace(/src="(.*?)"/, 'src="newPath/$1"')`替换`src`属性值。
33. **阿拉伯数字转中文大写**:这需要结合正则和转换函数来完成,例如`123`转为`壹佰贰拾叁`。
34. **替换URL为链接**:使用`<a href="$1">$1</a>`替换`/(http|https):\/\/[a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g`匹配到的URL。
35. **从HTML中删除指定标签及其内容**:`html.replace(/<tag>(.*?)<\/tag>/g, '')`可删除所有`<tag>`标签及其内容。
36. **文本分段**:根据分隔符,如换行符,使用`str.split('\n')`进行分段。
37. **转换源代码中的标签**:如将`<b>`转换为`<strong>`,使用`html.replace(/<b>/g, '<strong>')`。
38. **给属性添加双引号**:如`html.replace(/(\s+)(\w+)=([^\s>]+)/g, '$1$2="$3"')`为属性添加双引号。
39. **给`table`加上`tbody`**:在`<table>`标签内添加`<tbody>`,使用字符串操作或DOM操作。
40. **去掉标签的所有属性**:正则`/<\w+\s*[^>]*>/g`匹配标签并移除所有属性。
41. **正则替换特定单词**:如`str.replace(/\bword\b/g, 'replacement')`替换所有`word`。
42. **指定文字高亮显示**:通过正则匹配和CSS类添加,可以高亮特定文字。
43. **删除HTML标签**:使用`html.replace(/<[^>]*>/g, '')`可删除所有HTML标签。
以上示例涵盖了正则表达式在JavaScript中的许多常见应用场景,通过实践这些实例,可以加深对正则表达式的理解和应用能力。
2019-08-04 上传
2018-03-12 上传
2017-05-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-05-30 上传
2024-11-14 上传
javafanlove
- 粉丝: 2
- 资源: 4
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜