请问正则表达式 key.replace(/<\/?.+?>/g,""); 是说明意思?最好能举例说明。

2019-11-09 00:24:33 +08:00
 hgjian
//js 去除换行
function clearBr(key)
{
key = key.replace(/<\/?.+?>/g,"");
key = key.replace(/[\r\n]/g, "");
return key;
}

replace(/[\r\n]/g, ""); 可以看懂;

请问正则表达式 key.replace(/<\/?.+?>/g,""); 是说明意思?最好能举例说明。对照手册猫眼看明白。
3588 次点击
所在节点    JavaScript
7 条回复
pagxir
2019-11-09 00:33:28 +08:00
/<\/?.+?>/g, 匹配所有的 html 的 tag 标签。不过这个应该写得有点问题。
正确的应该是 /<\/?[^>]+?>/g,
lujjjh
2019-11-09 00:37:47 +08:00
KentY
2019-11-09 00:44:19 +08:00
@pagxir 如果 non-greedy 是支持的, 他的跟你的没区别, 而且如果按你这么写, 那个问号可以去掉.
他的是 non-greedy matching, 所以第一个碰到> 就 matched 了
不过, 实际中[^>]+ 比 .+? 好
hgjian
2019-11-09 11:03:32 +08:00
谢谢各位的解答
Telegram
2019-11-09 11:15:10 +08:00
他想匹配这个呗:
</***>
KentY
2019-11-09 16:16:48 +08:00
@Telegram 不是. 他这个式子匹配<foo> or </foo>
flowfire
2019-11-19 15:43:20 +08:00
@pagxir #1 .+? 意思就是 .+ 然后开启非贪婪模式。所以没错误能正常匹配

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/617785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX