字符串如下:var str='<body bgColor="#f98405" background="" style="font-size:10pt;font-family:NSimSun;margin:2px;"><div>正文</div></body>'
解决方案 »
- 紧急求助!!ExtJS Xtemplate的问题
- 如何解析一段string类型的JS语句成单句代码?高手请进!
- javascript 中有没有类似C#中StringBuilder的类?或者如何给字符串事先分配一定的内存?
- 想动态改变文本框的maxlength属性,该怎么做呢?
- 请教大家有关Web行为的属性问题?????????????????
- javascript 打开,关闭输入法怎么处理?
- 网页为什么被提交两次?
- JS打开新页问题<select name="select" onChange="document.location.href=this.value">这个只能在本页打开
- 字符串问题
- 如果在Java Script实现 向导 样的页面??
- 求各浏览器重写右键事件的javascript代码!
- extjs的分页grid整体导出为excecl
var rg = new RegExp("^<body([^<]*)>(.*)</body>$", "i"),
rgAtt = new RegExp("([a-z]+)\\s*=\\s*([\"'])([^\"']*)\\2", "i");
var str = '<body bgColor="#f98405" background="" style="font-size:10pt;font-family:NSimSun;margin:2px;"><div>正文</div></body>';
var match = rg.exec(str);
if (match && match.length == 3) {
//ok
var attStr = match[1],
contentHtml = match[2],
divC = document.getElementById("c");
divC.appendChild(document.createTextNode("内容:\n" + contentHtml + "\n\n属性:\n"));
while (rgAtt.test(attStr)) {
divC.appendChild(document.createTextNode(RegExp.$1 + " : " + RegExp.$3 + "\n"));
attStr = RegExp.rightContext;
} }
}
window.onload = function () {
var rg = new RegExp("^<body([^<]*)>(.*)</body>$", "i"),
rgAtt = new RegExp("([a-z]+)\\s*=\\s*([\"'])([^\"']*)\\2", "i");
var str = '<body bgColor="#f98405" background="" style="font-size:10pt;font-family:NSimSun;margin:2px;"><div>正文</div></body>';
var match = rg.exec(str);
if (match && match.length == 3) {
//ok
var attStr = match[1],
contentHtml = match[2],
divC = document.getElementById("c");
divC.appendChild(document.createTextNode("内容:\n" + contentHtml + "\n\n属性:\n"));
while (rgAtt.test(attStr)) {
divC.appendChild(document.createTextNode(RegExp.$1 + " : " + RegExp.$3 + "\n"));
attStr = RegExp.rightContext;
}
}
}
var str='<body bgColor="#f98405" background="" style="font-size:10pt;font-family:NSimSun;margin:2px;"><div>正文</div></body>'
var mats = str.match(/<body([^>]*)>(.*?)<\/body>/);
var text = mats[2];
var str_attr = mats[1];
var reg = /(\w+)\s*=\s*(["']?)(.*?)\2/g, tmp, attrs = {};
while(tmp =reg.exec(str_attr)) {
attrs[tmp[1]] = tmp[3];
}
console.log(text);
console.log(attrs);
console.log(attrs.bgColor);
</script>
实际上现在关于样式的标签属性都由CSS接管了。
像body这样元素除了设置cssStyle的style和class属性外没什么其它属性需要设置。
超链 a 常用属性:href target title style class
图片 img 常用属性:src alt title style class
等等.....
attrs[tmp[1]] = tmp[3];
}
这一段有点问题,exec不会移到下次匹配位置的呀???
//应该这样啊
while(tmp =reg.exec(str_attr)) {
attrs[tmp[1]] = tmp[3];
str_attr=RegExp.rightContext;
}
js获取内容不行吗?
比如var f=document.createElement('IFRAME')
f.src='aa.html'
f.name='ff'
f.onload=function(){window.frames['ff'].document.write("这里是你的那个内容");}
document.body.appendChild(f);function getHTML(){ window.frames['ff'].document.body.// ...这里处理你要的数据}