正斜杠在JavaScript正则表达式中意味着什么?

时间:2013-03-27 14:55:13

标签: javascript regex

我无法找到有关/在JavaScript正则表达式中的含义的任何确切信息。

代码replace(/\r/g, '');

我能弄清楚的是:

  • / =我不知道
  • \r =回车
  • /g =我不知道,但这可能意味着'匹配必须发生在上一场比赛结束时。'

5 个答案:

答案 0 :(得分:33)

斜杠表示正则表达式的开头和结尾。

最后的g是一个标志,表示它是全局搜索。

来自docs

  

正则表达式有四个可选标志,允许全局和   不区分大小写的搜索。要指示全局搜索,请使用g   旗。要指示不区分大小写的搜索,请使用i标志。至   表示多行搜索,使用m标志。执行“粘性”   搜索,匹配从目标中的当前位置开始   字符串,使用y标志。这些标志可以单独使用或一起使用   以任何顺序,并作为正则表达式的一部分包含在内。

     

要在正则表达式中包含标志,请使用以下语法:

 var re = /pattern/flags;

答案 1 :(得分:7)

正如其他人所指出的,你应该阅读文档!那说:

将正斜杠视为正则表达式的引号。斜杠包含表达式,但它们本身不是表达式的一部分。 (如果你想测试正斜杠,你必须用反斜杠来逃避它。)小写g指定这是一个全局搜索,即找到所有匹配而不是在第一次匹配时停止。

答案 2 :(得分:7)

要添加更多细节,/字符是JavaScript / ECMAScript中正则表达式literal语法的一部分。 lexical analysis期间使用/字符来确定它们之间是否存在正则表达式模式,紧随其后的任何内容都将是正则表达式标志。 ECMAScript standard已在EBNF中为您的perusual定义了此内容:

  

RegularExpressionLiteral :: / RegularExpressionBody /   RegularExpressionFlags

正则表达式中/的一个很好的比喻是围绕JavaScript中的字符串文字的"'

答案 3 :(得分:6)

here所示,正斜杠不是表达式本身的一部分,而是表示表达式的开头和结尾。

答案 4 :(得分:1)

添加到metadept的答案:

g位是全局指标 - 请参阅What does the regular expression /_/g mean? - 即替换所有出现的事件,而不仅仅是第一次出现