62,041
社区成员
发帖
与我相关
我的任务
分享
var h = '<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>';
var i = 1;
h = h.replace(/<img\s+[^>]*>([\s\S]*?<\/div>)/g, function () {
return '<div>img' + (i++) + '</div><div>' + arguments[1]+'</div>';
}).replace(/<\/?br[^>]*>/g, '');
console.info(h);
要不你就接受这样子吧,只要有image,都会给后面的内容添加一个div,因为div套div没样式的话本身没多大影响,但image前面的好像没办法,js的正则限制比较多var h = '<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>';
var i = 1;
h = h.replace(/<img\s+[^>]*>/g, function () {
return '<div>img' + (i++) + '</div>';
}).replace(/<\/?br[^>]*>/g, '');
console.info(h);
给img加个div还可以,给其它的加没法做到var h = '<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>';
var i = 1;
h = h.replace(/<img\s+[^>]*>/g, function () {
return 'img' + (i++);
}).replace(/<\/?(div|br)[^>]*>/g, '');
console.info(h);
还有什么要替换的吗?var h = '<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>';
var i = 1;
h = h.replace(/<img\s+[^>]*>/g, function () {
return 'img' + (i++);
}).replace(/<div[^>]*>\s*<\/?br\s*\/?>\s*<\/div>/g, '');
console.info(h);
只带<br>标签的也去掉了var h = '<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>';
var i = 1;
h = h.replace(/<img\s+[^>]*>/g, function () {
return 'img' + (i++);
});
console.info(h);
var $h = $('<div contenteditable="true" class="experTxt">dgdsgd<img src="/a.jpg" /><div>aaaaaaaaaakkk</div><div><br/></div><div><img src="/b.jpg" />kkkkkkkkkkkk <a href="http://www.baidu.com">百度</a></div><div><a href="http://www.baidu.com">百度2</a></div></div>');
var arr = new Array();
var imgNum = 1;
AddToArray($h);
console.info(arr);
function AddToArray(dom) {
$(dom).each(function (i, n) {
if ($(n).is('img')) {
arr.push('img' + (imgNum++));
} else {
var childs = $(n).find('>*');
if (childs.length > 0) {
for (var j = 0; j < childs.length; j++) {
AddToArray(childs[j]);
}
}
else {
arr.push($(n).html());
}
}
});
}
这个是有问题的,如果只是替换图片的话简单点