42

我找不到任何关于/JavaScript 正则表达式含义的明确信息。

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

我能弄清楚的是:

  • / = 我不知道
  • \r=回车
  • /g= 我不知道,但这可能意味着“比赛必须发生在上一场比赛结束的地方。”
4

5 回答 5

47

斜线表示正则表达式的开始和结束。

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

文档

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

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

 var re = /pattern/flags;
于 2013-03-27T15:00:36.330 回答
12

添加更多细节,这些/字符是 JavaScript/ECMAScript 中正则表达式文字语法的一部分。在词法分析期间使用这些/字符来确定它们之间是否存在正则表达式模式,并且紧随其后的任何内容都将是正则表达式标志。ECMAScript 标准EBNF中对此进行了定义,供您阅读:

RegularExpressionLiteral :: / RegularExpressionBody / RegularExpressionFlags

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

于 2015-08-20T14:23:33.210 回答
8

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

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

于 2013-03-27T15:01:41.053 回答
6

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

于 2013-03-27T14:58:53.000 回答
2

要添加到 metadept 的答案:

g 位是全局指示符 - 请参阅正则表达式 /_/g 是什么意思?- 即替换所有出现,而不仅仅是第一个

于 2013-03-27T15:01:20.613 回答