正则表达式中的/是什么意思?

时间:2013-02-20 17:07:56

标签: javascript regex

我遇到了一些遗留代码,我们尝试使用javascript正则表达式对字符串进行精确匹配。

我试图理解为什么他们在匹配字符串之前和之后使用/。

例如

 var match = thinger.match(/stringToMatch/);

这个角色做了什么?

4 个答案:

答案 0 :(得分:3)

/regex here/是一种在javascript中声明正则表达式的方法。

/字符是正则表达式声明的分隔符,就像单引号或双引号是字符串声明的分隔符一样。

有关书面说明,请参阅MDN regular expression reference page。可以在javascript中使用以下两种方式声明正则表达式:

var re = /match string here/i;
var re = new RegExp("match string here", "i");

使用/regex here/方法的优点是:

  1. 您可以在匹配中自由使用引号而不必转义它们,但使用此方法时必须在reg中转义/
  2. 打字更少,更紧凑
  3. 使用new RegExp("regex here")方法的优点是:

    1. 您可以使用javascript表达式动态构造字符串或正则表达式参数,如new RegExp("first" + foo + "whatever")中那样,您无法使用其他方法。
    2. 你不必担心逃避正斜杠

答案 1 :(得分:2)

答案 2 :(得分:1)

它是Regular Expression的分隔符。就像您可以通过键入'string'而不是调用其构造函数new String('string')来创建新的原始字符串一样,因此您可以使用/regexp/而不是new RegExp('regexp')指定RegExp。

答案 3 :(得分:0)

它们是分隔符,用于指定正则表达式的开头和结尾。您还可以附加/ i等运算符以使正则表达式独立。