JavaScript 正则表达式模式
什么是正则表达式?
正则表达式(Regular Expression,简称 RegExp)是一种用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式是一个对象,可以用于执行强大的模式匹配和"搜索并替换"功能。
正则表达式的主要用途包括:
- 验证输入(如表单验证)
- 搜索字符串中的特定模式
- 替换字符串中的部分内容
- 从字符串中提取信息
提示
掌握正则表达式可以大大提高您处理文本和字符串的效率!
创建正则表达式
在JavaScript中,有两种方式可以创建正则表达式:
1. 使用正则表达式字面量
let pattern = /pattern/flags;
2. 使用RegExp构造函数
let pattern = new RegExp('pattern', 'flags');
例如,创建一个匹配所有数字的正则表达式:
// 使用字面量
const digitPattern1 = /\d+/;
// 使用构造函数
const digitPattern2 = new RegExp('\\d+');
// 测试
console.log(digitPattern1.test("123")); // 输出: true
console.log(digitPattern2.test("abc")); // 输出: false
备注
使用构造函数时,需要注意转义字符问题。由于构造函数参数是字符串,所以像 \d
这样的特殊字符需要双重转义:\\d
。
正则表达式模式语法
基本匹配
最简单的正则表达式是直接匹配字符:
const pattern = /hello/;
console.log(pattern.test("hello world")); // 输出: true
console.log(pattern.test("hi there")); // 输出: false
特殊字符
正则表达式中的许多字符具有特殊含义:
字符 | 描述 |
---|---|
. | 匹配任何单个字符(除了换行符) |
\d | 匹配任何数字字符 (等同于 [0-9] ) |
\D | 匹配任何非数字字符 (等同于 [^0-9] ) |
\w | 匹配任何字母、数字或下划线 (等同于 [A-Za-z0-9_] ) |
\W | 匹配任何非字母、数字或下划线 (等同于 [^A-Za-z0-9_] ) |
\s | 匹配任何空白字符 (空格、制表符、换行符等) |
\S | 匹配任何非空白字符 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
示例:
const digitPattern = /\d{3}/; // 匹配连续的3个数字
console.log(digitPattern.test("123")); // 输出: true
console.log(digitPattern.test("12")); // 输出: false
console.log(digitPattern.test("abc123def")); // 输出: true
字符类
字符类允许您指定一组要匹配的字符:
const vowelPattern = /[aeiou]/i; // i标志表示不区分大小写
console.log(vowelPattern.test("Apple")); // 输出: true
console.log(vowelPattern.test("sky")); // 输出: false
字符类中的连字符-
用于表示范围:
const alphaPattern = /[a-z]/; // 匹配任何小写字母
console.log(alphaPattern.test("Hello")); // 输出: true
console.log(alphaPattern.test("123")); // 输出: false
^
在字符类中表示否定:
const notDigitPattern = /[^0-9]/; // 匹配任何非数字字符
console.log(notDigitPattern.test("123")); // 输出: false
console.log(notDigitPattern.test("a123")); // 输出: true