我无法找到有关/
在JavaScript正则表达式中的含义的任何确切信息。
代码replace(/\r/g, '');
我能弄清楚的是:
/
=我不知道\r
=回车/g
=我不知道,但这可能意味着'匹配必须发生在上一场比赛结束时。'答案 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? - 即替换所有出现的事件,而不仅仅是第一次出现