JavaScript正则表达式实战指南

需积分: 9 0 下载量 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中的许多常见应用场景,通过实践这些实例,可以加深对正则表达式的理解和应用能力。