JavaScript正则表达式中的正斜杠代表什么?

45
我无法找到有关JavaScript正则表达式中/的明确信息。
代码:replace(/\r/g, ''); 我能够理解的是:
  • / = 我不知道
  • \r = 回车符
  • /g = 我不知道,但它可能意味着“匹配必须发生在上一个匹配结束的地方”。

2
你应该先阅读手册:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions。 - VisioN
阅读这个:http://www.regular-expressions.info/ - 你会很高兴的.. :-) - techfoobar
@techfoobar,regular-expressions.info网站已经无法访问了 :/ - Piper
@piperchester,那个网站对我仍然有效,尽管现在加载需要很长时间。而且它不能消失,这可能是正则表达式标记的问答中最常见的外部链接。没有它我们会迷失的!:P - Alan Moore
http://www.regular-expressions.info/ 对我来说也非常好用。 - techfoobar
5个回答

50

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

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

根据文档

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

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

 var re = /pattern/flags;

15
为了提供更详细的信息,/字符是JavaScript / ECMAScript中文字语法的一部分。这些/字符用于词法分析,以确定一个正则表达式模式是否存在,并且在它们之间和紧随其后的任何内容都将是正则表达式标志。 ECMAScript标准已经在EBNF中定义了这一点供您参考:

RegularExpressionLiteral :: / RegularExpressionBody / RegularExpressionFlags

正则表达式中/的一个好比喻就是在JavaScript中用于包围字符串常量的"'

9

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

将斜杠视为正则表达式的引号。 斜杠包含表达式但不是表达式的一部分。(如果要测试斜杠,请使用反斜杠进行转义。)小写字母g指定这是全局搜索,即查找所有匹配项而不是在第一个匹配项处停止。


6
正如这里所指出的那样,斜杠并不是表达式本身的一部分,而是表示表达式的开始和结束。

将来如果链接内容无法访问,包含一个小节摘要在你的回答中可能会有所帮助。 - Alex W

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接