JavaScript中正则表达式 *?与 ?或 *有什么区别吗?
*符号选定0个或一个或多个给定的表达,
?符号选定0个或一个,
*?这个应该是非贪心选择,跟单个?有什么区别吗?
const tags = /^(area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;
function convert(html) {
return html.replace(
/(<(\w+)[^>]*?)\/>/g, (all, front, tag) => {
return tags.test(tag) ? all :
front + "></" + tag + ">";
});
}
这段函数用来关闭类似<table/>这种非自动关闭的元素,但是不是很理解作者在replace中使用*?而不是?。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要理解 正则里的 贪婪匹配 和 非贪婪匹配
常规的
*
和+
是贪婪匹配后面加上
?
就是是非贪婪匹配*?
+?
理解一下下面这个