JavaScript正则表达式实战指南

5星 · 超过95%的资源 需积分: 10 2 下载量 200 浏览量 更新于2024-07-28 收藏 284KB PDF 举报
"JavaScript正则表达式是编程语言JavaScript中用于处理文本模式的强大工具,它在文本处理、数据验证和字符串操作中起着至关重要的作用。以下是一些经典的JavaScript正则表达式实战示例,涵盖了各种常见的匹配和操作场景。 1. **匹配结尾的数字** 使用正则表达式`/\d+$/g`,可以匹配字符串末尾的一串数字。例如,从"30CAC0040"和"3SFASDF92"中分别取出末尾的"40"和"92"。 2. **统一空格个数** 当字符串中的空格数量不一致时,可以使用正则表达式`\s+`来匹配连续的空格,并用`replace()`函数替换为单个空格。例如,将多行的"蓝色\n色\n理想"转换为"蓝色理想"。 3. **判断字符串是否全由数字组成** 可以使用正则表达式`/^\d+$/`来检查字符串是否仅包含数字。如果整个字符串都能匹配这个正则,那么它就是全数字的。 4. **电话号码和手机号码正则** 电话号码和手机号码的正则表达式通常会根据具体国家的格式进行编写,例如中国的手机号码通常使用`/^1[3-9]\d{9}$/`来匹配。 5. **删除字符串中的空格** 使用`/\s+/g`匹配所有空格,然后用空字符串替换,即可实现删除字符串中的所有空格。 6. **限制文本框输入格式** 若要限制文本框只能输入数字和小数点,可以设置输入框的`pattern`属性为`^[0-9]+(\.[0-9]+)?$`。 7. **替换小数点前内容** 用正则表达式`/(^|[^.])+/`捕获小数点前的内容,然后进行替换。 8. **匹配中文字符** 正则表达式`/^[\u4e00-\u9fa5]+$/`可以用来判断字符串是否只包含中文字符,以及计算中文字符个数。 9. **获取IP地址前三段** 使用正则`/(\d{1,3}\.){2}\d{1,3}/`可以匹配到IP地址的前三段。 10. **匹配HTML内容** 正则表达式如`/<ul>(.*?)<\/ul>/`可以用于提取HTML中`<ul>`和`</ul>`标签之间的内容。 11. **文件名提取** 要获取文件名,可以用正则`/(.*?)(?:\?|$)/`来匹配URL或路径中的文件名部分。 12. **路径转换** 转换绝对路径为相对路径,通常涉及对URL结构的理解和适当的字符串操作。 13. **验证邮箱格式** 邮箱验证的正则表达式通常较复杂,例如`/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/`。 14. **匹配源代码链接** 从HTML源代码中提取链接,可以使用`/<a\s+(?:[^>]*?\s+)?href=["']([^"']+)["']\s*>/gi`。 15. **判断HTML标签是否闭合** 检查HTML标签是否正确闭合,需要分析标签的开始和结束。 16. **提取指定标签内容** 使用正则`/<tag>(.*?)<\/tag>/`可以提取HTML中特定标签内的内容。 17. **混合字母数字验证** 用正则`/^[a-zA-Z0-9]+$/`可以判断字符串是否仅包含字母和数字。 18. **显示或保存匹配部分** 使用`match()`或`exec()`方法可以获取正则匹配的子串。 19. **替换正则表达式中的变量** 通过正则的`replace()`方法可以替换字符串中满足特定模式的部分。 20. **阿拉伯数字转中文大写** 将阿拉伯数字转换为中文大写,涉及到数字到汉字字符的映射。 21. **URL转链接** 把文本中的URL自动转换为可点击的链接,可以使用正则和`replace()`。 22. **删除HTML标签及其内容** 使用正则表达式配合`replace()`来删除HTML中的特定标签和它们所包含的内容。 23. **文本分段** 通过正则来分割文本,可以实现按特定规则(如行数)划分段落。 24. **转换标签属性** 如给属性添加双引号,使用正则替换未封闭的属性值。 25. **给`table`添加`tbody`** 自动在`table`标签内部添加`tbody`标签,以符合HTML规范。 26. **删除标签的所有属性** 通过正则表达式移除HTML标签的所有属性。 27. **替换特定单词** 使用正则替换功能,可以替换文本中的特定单词。 28. **高亮显示指定文字** 对文本中特定文字进行高亮处理,通常涉及字符串替换和CSS样式应用。 这些实战例子展示了JavaScript正则表达式的强大和灵活性,它们在实际开发中有着广泛的应用。通过熟练掌握这些技巧,开发者可以更高效地处理和验证文本数据。"