JavaScript 正则表达式
JavaScript 中的正则表达式(Regular Expressions)是用来匹配字符串中字符组合的模式。在 JavaScript 中,可以通过内置的 RegExp 对象或者直接使用正则表达式字面量来创建正则表达式。
创建正则表达式
使用字面量创建:
let pattern = /pattern/;
其中 pattern 是正则表达式的模式,可以是简单的字符串,也可以是包含复杂规则的字符串。
使用 RegExp 对象创建:
let pattern = new RegExp('pattern');
这种方式允许你在运行时动态地构建正则表达式,因为参数可以是变量。
基本语法和模式
正则表达式的模式可以包含以下基本元素:
普通字符:直接匹配字符,如 /abc/ 匹配 "abc"。
元字符:具有特殊含义的字符,如 ^、$、.、* 等。
字符类:用方括号 [] 包含的字符集合,如 [a-z] 表示匹配任何小写字母。
量词:控制匹配次数,如 * 表示零次或多次。
捕获组:用小括号 () 包围的部分可以作为子模式,并在匹配成功后获取它们的内容。
正则表达式方法
在 JavaScript 中,RegExp 对象提供了多种方法来操作正则表达式,常见的包括:
test:检测字符串是否匹配正则表达式,返回布尔值。
let pattern = /abc/; pattern.test('abc'); // true
exec:在字符串中执行查找,并返回找到的结果。返回一个数组,包含匹配的文本以及捕获组(如果有)。
let pattern = /abc/; let result = pattern.exec('defabcghi'); console.log(result[0]); // 'abc'
修饰符
正则表达式可以包含修饰符,影响匹配的行为,例如:
i:不区分大小写匹配。
g:全局匹配,查找所有匹配而非在找到第一个匹配后停止。
m:多行匹配,允许 ^ 和 $ 匹配字符串中每行的开始和结束(在多行模式下)。
let pattern = /abc/gi;
示例
let pattern = /apples/g; let text = 'Apples are round, and apples are juicy.'; let result = pattern.test(text); console.log(result); // true let pattern2 = /\bapples\b/i; // 匹配独立的单词 "apples",不区分大小写 let result2 = pattern2.exec('I like Apples'); console.log(result2[0]); // 'Apples'
正则表达式在 JavaScript 中是强大且灵活的工具,用于字符串操作和模式匹配,掌握好它们可以极大地提升对字符串处理的效率和精度。