繁体   English   中英

Javascript 替换所有匹配项上的匹配组

[英]Javascript replace with reference to matched group on all matches

我的示例文本是:

'<div class="emoji-icons emoji-smile" e-type="smile" style="display:inline-block;" contenteditable="false"></div> is <div class="emoji-icons emoji-grinning" e-type="grinning" style="display:inline-block;" contenteditable="false"></div> very time.'

替换命令是:

text.replace(/<div class="emoji-icons (?:.*)" e-type="([a-z]*)"[^>]+><\/div>/ig, '$1')

我想用 e-type 属性值替换所有 div 标签。 结果一定是“笑是笑不一样的时候”。

但是这个正则表达式不适用于所有匹配和最后匹配。

有什么想法或建议吗?

您需要将(?:.*)"替换为(?:.*?)" ,也不需要()所以只需使用.*?"

 var text = '<div class="emoji-icons emoji-smile" e-type="smile" style="display:inline-block;" contenteditable="false"></div> is <div class="emoji-icons emoji-grinning" e-type="grinning" style="display:inline-block;" contenteditable="false"></div> very time.'; text = text.replace(/<div class="emoji-icons.*?" e-type="([az]*)"[^>]+><\\/div>/ig, '$1') document.write(text);

.*? :在零次和无限次之间,尽可能少的次数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM