这个正则表达式(\ /?)是什么意思?

时间:2013-07-27 11:54:39

标签: javascript regex regex-greedy

以下代码摘自Jon Resig的书Secrets of JavaScript Ninja

var html = "<div class='test'><b>Hello</b> <i>world!</i></div>";
var results = html.match(/<(\/?)(\w+)([^>]*?)>/);

我想理解第一个捕获(在括号内)的含义,即(\/?)

2 个答案:

答案 0 :(得分:7)

它匹配可选的斜杠。斜杠需要转义,因为斜杠也可以作为JavaScript正则表达式文字中的分隔符。

用捕获括号将它包围起来并不是很有用。 \/?也可以正常工作(除非您以后想要检查您是否匹配开头或结束标记)。

答案 1 :(得分:4)

恰好是一个 /或者没有。 /必须在正则表达式中进行转义,因为它意味着“未转义的结束时”。