0

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

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

例子

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

这个角色是做什么的?

4

4 回答 4

3

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

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

有关书面说明,请参阅MDN 正则表达式参考页面。正则表达式可以在 javascript 中以以下两种方式之一声明:

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

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

  1. 您可以在匹配中自由使用引号而不必转义它们,但/在使用此方法时您必须在 reg中转义 a
  2. 打字更少,更紧凑

使用该new RegExp("regex here")方法的优点是:

  1. 您可以使用 javascript 表达式来动态构造字符串或正则表达式参数,new RegExp("first" + foo + "whatever")而其他方法无法做到这一点。
  2. 您不必担心转义正斜杠
于 2013-02-20T17:08:59.850 回答
2

/是正则表达式文字分隔符'"类似于字符串分隔符

于 2013-02-20T17:09:03.397 回答
1

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

于 2013-02-20T17:13:21.493 回答
0

它们是指定正则表达式开头和结尾的分隔符。您还可以附加诸如 /i 之类的运算符以使正则表达式大小写独立。

于 2013-02-20T17:10:44.397 回答