正则表达式(Regular Expression)是一种强大的文本处理工具,通过特定模式实现字符串的匹配、查找和替换操作。在JavaScript中,正则表达式通过RegExp对象实现,为前端开发提供高效的字符串处理能力。
const pattern = /abc/;
const patternWithFlags = /abc/gi;
const pattern = new RegExp('abc');
const patternWithFlags = new RegExp('abc', 'gi');
检测字符串是否匹配模式,返回布尔值:
const pattern = /hello/;
console.log(pattern.test('hello world')); // true
执行搜索匹配,返回匹配结果的数组:
const pattern = /\d+/;
console.log(pattern.exec('abc123def')); // ['123']
match()、replace()、search()、split()方法都支持正则表达式:
const str = 'Hello123World';
console.log(str.match(/\d+/)); // ['123']
console.log(str.replace(/\d+/, '')); // 'HelloWorld'
console.log(str.search(/\d+/)); // 5
console.log(str.split(/\d+/)); // ['Hello', 'World']
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailPattern.test('test@example.com')); // true
const phonePattern = /^1[3-9]\d{9}$/;
console.log(phonePattern.test('13800138000')); // true
const strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
console.log(strongPassword.test('Pass1234')); // true
const datePattern = /(\d{4})-(\d{2})-(\d{2})/;
const result = datePattern.exec('2023-12-01');
console.log(result[1]); // 2023
console.log(result[2]); // 12
console.log(result[3]); // 01
const greedy = /a.*b/;
const lazy = /a.*?b/;
console.log('aabbcc'.match(greedy)); // ['aabb']
console.log('aabbcc'.match(lazy)); // ['aab']
A: 使用反斜杠转义,如匹配点号使用\.
A: 避免过度使用回溯,尽量使用具体匹配而非通配符
A: 使用在线正则测试工具,如regex101.com
掌握JavaScript正则表达式能够显著提升字符串处理效率。通过本文介绍的基础语法、常用方法和实战示例,开发者可以快速上手并灵活运用正则表达式解决实际开发中的字符串处理需求。建议结合实际项目多加练习,逐步掌握更复杂的正则模式编写技巧。