什么是替换(/(<([^>] +)>)/ ig,“”)在做什么?

时间:2012-02-25 14:32:49

标签: javascript regex

我遇到了另一位开发人员编写的代码,我无法弄清楚它在做什么:

title.replace(/(<([^>]+)>)/ig," ")

2 个答案:

答案 0 :(得分:18)

它用空格<...>替换所有标记(表单" "上的子字符串)。

这是一个正则表达式细分:

  • < - 左侧标记
  • [^>] - 除了正确的标签之外的任何东西......
  • + - ...一次或多次
  • > - 正确的标记。

()只围绕表达式中的组,无论如何都不会使用。

/ig后缀表示正则表达式是 i nsensitive(在这种情况下无意义,因为rexeg没有提及任何字母)和 g 表示应该更换所有事件。

答案 1 :(得分:3)

看起来它正在取代HTML开始或结束标记。如果您需要解析正则表达式或测试它们,这里是一个很棒的网站。 http://myregextester.com/index.php

NODE                     EXPLANATION
----------------------------------------------------------------------
(?i-msx:                 group, but do not capture (case-insensitive)
                         (with ^ and $ matching normally) (with . not
                         matching \n) (matching whitespace and #
                         normally):
----------------------------------------------------------------------
  (                        group and capture to \1:
----------------------------------------------------------------------
    <                        '<'
----------------------------------------------------------------------
    (                        group and capture to \2:
----------------------------------------------------------------------
      [^>]+                    any character except: '>' (1 or more
                               times (matching the most amount
                               possible))
----------------------------------------------------------------------
    )                        end of \2
----------------------------------------------------------------------
    >                        '>'
----------------------------------------------------------------------
  )                        end of \1
----------------------------------------------------------------------
)                        end of grouping
----------------------------------------------------------------------