2

例如,javascript 中 2 位数字的正则表达式将是/^\d\d$/. 所以这个 reg ex 包含/and/在开始和结束时。所以我想知道他们的目的是什么?为什么我们不能简单地使用^\d\d$?他们是否在那里通知解释器字符串是 reg ex ?

4

3 回答 3

2

这只是另一种说法new RegExp(pattern)。您可以通过在第二个之后添加修饰符来为其添加修饰符/

var pattern = /pattern/modifiers;

或者

var pattern = new RegExp(pattern, modifiers);

修饰符可以是以下任何一种:

  • i- 不区分大小写
  • m- 匹配多行
  • g- 查找所有匹配项
于 2013-09-26T18:04:16.650 回答
1

Javascript 允许您简单地/^\d\d$/输入代码并进行编译,因此我们不必包含引号(少 2 个字节)或对象构造函数(超过 13 个字节),而且使用 Javascript 预编译与创建RegExp对象相比,它可能会更快用字符串。

同样在第二个斜线之后,您可以有更多选项,例如gi

这里是性能测试。

http://jsperf.com/regexp-object-vs-regexp-inline

于 2013-09-26T18:05:23.640 回答
0

是的,它们被有效地用作字符串周围的标记。某些语言允许您使用其他字符代替它们,例如 Perl。这是为了让正则表达式中的“/”字符更容易。

if (m#^/usr/spool/whatever/#) {
    do_something();
}
于 2013-09-26T18:08:30.927 回答