为什么我们把/和/在javascript这样的语言中开始和结束正则表达式?

时间:2013-09-26 18:01:13

标签: javascript regex

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

3 个答案:

答案 0 :(得分:2)

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

var pattern = /pattern/modifiers;

或者

var pattern = new RegExp(pattern, modifiers);

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

  • i - 不区分大小写
  • m - 多行匹配
  • g - 找到所有比赛

答案 1 :(得分:1)

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

在第二次斜杠之后,你可以有更多选项,例如gi

这是对性能的测试。

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

答案 2 :(得分:0)

是的,它们实际上被用作字符串周围的标记。某些语言允许您在其位置使用其他字符,例如Perl。这样可以更容易在正则表达式中包含“/”字符。

if (m#^/usr/spool/whatever/#) {
    do_something();
}