脚本网 > 网络编程 > JavaScript > TypeScript中正则表达式的用法及实际应用
TypeScript中正则表达式的用法及实际应用
admin JavaScript
前言
正则表达式是处理字符串的强大工具,在 TypeScript/JavaScript 中同样适用。本文将带你全面了解正则表达式在 TS 中的用法,包括基础语法、高级技巧和实际应用场景。
一、正则表达式基础
1. 创建正则表达式
1. 字面量语法
基本语法
const regex = /pattern/flags;
pattern: 正则表达式的主体模式flags: 可选的修饰符(如i,g,m等)
特点
- 在脚本加载时编译(当正则表达式是常量时性能更好)
- 更简洁直观的语法
- 不需要转义反斜杠(
\)
2. 构造函数语法
基本语法
const regex = new RegExp('pattern', 'flags');
或
const regex = new RegExp(/pattern/, 'flags');
特点
- 在运行时编译正则表达式
- 可以使用变量动态构建正则表达式
- 字符串中的反斜杠需要转义(
\\) - 可以基于已有的正则对象创建新的正则
何时使用哪种方式
使用字面量语法:
正则模式是固定的、已知的
不需要动态构建正则
需要更好的可读性
使用构造函数语法:
- 需要动态构建正则表达式(如基于用户输入)
动态构建
在程序运行时(而非编写代码时)根据需要创建或修改正则表达式模式。
- 正则模式需要从变量或配置中获取
- 需要在运行时组合多个正则片段
2. 常用修饰符(flags)
1.i(ignoreCase) - 不区分大小写
作用:使匹配不区分大小写
const regex = /hello/i;
console.log(regex.test('Hello')); // true
console.log(regex.test('HELLO')); // true
console.log(regex.test('hello')); // true
console.log(regex.test('hElLo')); // true
2.g(global) - 全局匹配
作用:查找所有匹配项,而不是在第一个匹配后停止
const str = 'apple, orange, apple, banana';
const regex = /apple/g;
let match;
while ((match = regex.exec(str)) !== null) {
console.log(`Found '${match[0]}' at index ${match.index}`);
}
// 输出:
// Found 'apple' at index 0
// Found 'apple' at index 15
3.m(multiline) - 多行模式
作用:使 ^ 和 $ 匹配每行的开头和结尾,而不是整个字符串的开头和结尾
const multiLineText = `First line Second line Third line`; // 不使用 m 修饰符 console.log(/^Second/.test(multiLineText)); // false //在整个字符串的开头位置尝试匹配 "Second" // 使用 m 修饰符 console.log(/^Second/m.test(multiLineText)); // true
4.u(unicode) - Unicode 模式
作用:正确处理大于 \uFFFF 的 Unicode 字符
const emojiText = '
