正则表达式是提供了一种在文本中进行搜索和替换的强大的方式的模式。
在 JavaScript 中,我们可以通过 RegExp 对象使用它们,也可以与字符串方法结合使用。
正则表达式(可叫作 “regexp”,或 “reg”)包扩 模式 和可选的 修饰符。
有两种创建正则表达式对象的语法。
较长一点的语法:
regexp = new RegExp(“pattern”, “flags”);
regexp =new RegExp(“pattern”,“flags”);
较短一点的语法,使用斜线 “/”:
regexp = /pattern/; // 没有修饰符
regexp = /pattern/gmi; // 带有修饰符 g、m 和 i(后面会讲到)
斜线 /…/ 告诉 JavaScript 我们正在创建一个正则表达式。它的作用与字符串引号的作用相同。
在这两种情况下,regexp 都会成为内建类 RegExp 的一个实例。
这两种语法之间的主要区别在于,使用斜线 /…/ 的模式不允许插入表达式(如带有 ${…} 的字符串模板)。它是完全静态的。
在我们写代码时就知道正则表达式时则会使用斜线的方式 —— 这是最常见的情况。当我们需要从动态生成的字符串“动态”创建正则表达式时,更经常使用 new RegExp。例如: