[英]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.