【问题标题】:What does this regex (\/?) mean?这个正则表达式 (\/?) 是什么意思?
【发布时间】:2013-07-27 11:54:38
【问题描述】:

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

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

我想了解第一个capture(括号内)的含义,即(\/?)

【问题讨论】:

    标签: javascript regex regex-greedy


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @TimPietzcker 是的,答案是正确的。我只是进行了编辑以使其更清晰,当然还有 +1。
      猜你喜欢
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      相关资源
      最近更新 更多