我的示例文字是:
'<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标签。 结果必须是&#34;微笑是咧嘴笑的不同时间。&#34;
但是这个正则表达式不适用于所有匹配的并且可用于最后一场比赛。
有任何想法或建议吗?
答案 0 :(得分:1)
您需要将(?:.*)"
替换为(?:.*?)"
,而且不需要()
所以只需使用.*?"
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="([a-z]*)"[^>]+><\/div>/ig, '$1')
document.write(text);
&#13;
。*?:在零和无限次之间,尽可能少的次数