用去除 HTML 标签的例子解释什么是懒惰匹配

作者:vkvi 来源:ITPOW(原创) 日期:2010-5-24

正则表达式中,懒惰匹配又称非贪婪匹配、勉强匹配。这里用一个去除 HTML 标签的例子来解释。

var str = "<div>11</div><div>22</div>";
alert(str.replace(/<(.)+>/gi, ""));
alert(str.replace(/<(.)+?>/gi, ""));

上面的代码,第一个 alert 为空白,第二个 alert 为 1122。

正则表达式中的 . 表示任意字符(不包括回车换行符)。

  • 按第一种方式匹配的话,就是贪婪匹配,也就是说它一开始就找到了 <,到第五个字符就找到了 >,但它还不满足,还要往后找,直到找到最后一个 >,这样,它就把整个字符串当作是一个 HTML 标签了,所以一替换,就什么也没有了。
  • 按第二种方式匹配的话,就是懒惰匹配,也就是说它一开始也找到了 <,到第五个字符就找到了 >,这时它满足了,就告诉我们,它已经找到了一个 HTML 标签,替换后,它又从 11 后面开始找……

可以看出懒惰匹配的特征是多了一个 ?。

相关阅读

相关文章