JavaScript正则表达式API详解

需积分: 16 11 下载量 177 浏览量 更新于2024-09-09 收藏 757KB PDF 举报
"这篇文档是JavaScript正则表达式API的快速入门笔记,涵盖了创建正则对象的两种方式、正则对象的属性与方法,以及JavaScript字符串对象中支持正则表达式的方法。" 在JavaScript中,正则表达式是用于文本处理的强大工具,尤其在搜索、替换和提取字符串方面。这篇笔记主要讲解了JavaScript中的RegExp对象及其相关API的使用。 1. **创建RegExp对象** - **直接量语法**: `/pattern/attributes` 是创建正则对象的常见方式,例如 `/^[1-9]\d{4}$` 创建了一个验证六位数的正整数的正则表达式。注意,直接量语法中的特殊字符需要进行转义,如`\d`代表数字。 - **构造函数语法**: `new RegExp(pattern, attributes)` 允许我们使用字符串创建正则对象,如 `new RegExp("^[1-9]\\d{4}$")`。在这里,引号是必要的,因为模式是一个字符串。构造函数允许添加额外的属性,如全局匹配(`g`)、不区分大小写(`i`)和多行匹配(`m`)。 2. **RegExp对象的属性** - **global**: 如果设置,表示全局匹配,即查找所有匹配而非仅查找第一个。 - **ignoreCase**: 如果设置,表示不区分大小写匹配。 - **multiline**: 如果设置,使`^`和`$`在多行模式下匹配行首和行尾。 - **source**: 返回正则表达式的原始模式字符串。 - **lastIndex**: 一个可读写属性,表示下次开始搜索的位置,对于非全局正则,这个属性无效。 3. **RegExp对象的方法** - **compile(pattern, attributes)**: 编译正则表达式,改变其模式或属性。在ES5之后,这个方法已不再推荐使用,通常在创建时就应设定好模式和属性。 - **exec(str)**: 在字符串str中执行一个正向查找,返回匹配的结果,如果没有找到则返回null。 - **test(str)**: 测试字符串str是否符合正则表达式模式,返回true或false。 4. **JavaScript字符串对象支持的正则方法** - **search(regexp)**: 查找字符串中与正则表达式匹配的第一个子串,返回匹配位置的索引,否则返回-1。 - **match(regexp/searchvalue)**: 匹配字符串,返回一个数组,包含匹配结果;如果无匹配项,返回null。 - **replace(regexp/substr, replacement)**: 使用replacement替换与regexp匹配的子串,返回替换后的字符串。 - **replace(正则,function(){})**: 更高级的替换,函数会被调用一次对于每个匹配项,返回值将作为替换内容。 - **split(separator, howmany)**: 使用separator分隔字符串,返回一个子串数组。howmany用于限制返回的数组长度。 这些基础知识构成了JavaScript正则表达式API的基础,通过熟练掌握它们,开发者可以高效地处理字符串操作,进行复杂的文本匹配和替换任务。在实际编程中,这些方法经常结合使用,以实现更复杂的功能,比如过滤、解析和格式化文本。了解和熟悉这些API,对于提升JavaScript编程能力至关重要。