正则表达式的创建方式
在 JavaScript 中,我们可以通过多种方式来创建正则表达式。本文将介绍几种常见的正则表达式创建方式,并通过实例来演示它们的用法。
测试用例
为了更好地演示正则表达式的使用,我们先定义一个测试字符串:
let str = `Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.`;
这个字符串包含了一段 Lorem ipsum 文本,我们将在后面的示例中使用它来测试正则表达式。
字面量创建
最简单的创建正则表达式的方式是使用字面量。我们可以直接在//
之间写入正则表达式的内容。例如:
let str = 'admin';
let pattern = 'n';
console.log(new RegExp(pattern).test(str));
在这个例子中,我们使用了new RegExp(pattern).test(str)
来测试字符串'admin'
是否包含字母'n'
。
构造函数创建
除了字面量,我们还可以使用RegExp
构造函数来创建正则表达式对象。构造函数接受两个参数:正则表达式的内容和修饰符。例如:
let text = 'Lorem';
let regex = new RegExp(text, 'g');
console.log(regex.test(str));
这里我们创建了一个全局搜索'Lorem'
的正则表达式对象regex
,并用它测试str
中是否包含'Lorem'
。
构造函数创建正则表达式的一个好处是可以动态生成正则表达式的内容。例如:
console.log('Lorem'.replace(/\w/g, '#'));
这行代码使用replace
方法将'Lorem'
中的所有单词字符替换为'#'
。其中/\w/g
就是一个用字面量创建的全局正则表达式。
选择符
有时我们希望正则表达式可以匹配多个模式中的一个,这时可以使用选择符|
。例如:
console.log(/aa|b/g.test(str));
console.log(/aa&b/g.test(str));
第一个正则表达式/aa|b/g
表示匹配'aa'
或'b'
,第二个正则表达式/aa&b/g
表示匹配'aa&b'
这个整体。