2

以下代码摘自 Jon Resig 的《JavaScript Ninja 的秘密》一书

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

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

4

2 回答 2

7

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

用捕获括号包围它并不是很有用。\/?也可以(除非您稍后想要检查您是否匹配了开始或结束标签)。

于 2013-07-27T11:56:16.547 回答
4

它要么完全是一个 /,要么什么都没有。 /必须在正则表达式中转义,因为它在未转义时意味着“正则表达式结束”。

于 2013-07-27T11:57:45.427 回答