怎么用正则表达式获取<BODY></BODY>之间的内容
我想在javascript里获取一段字符串中指定的内容,怎么做呢?
假设有一段string,格式固定
<body>文本内容</body><body><BODY><font style="color:red">详细内容</font></BODY></body>
我希望有这么两个函数,
获取问本内容的函数
希望返回 : 文本内容
获取详细内容的函数
希望返回: <font style="color:red">详细内容</font>
另一个例子
<body>文本内容</body><body><BODY><div><font style="color:red">详细内容</font></div></BODY></body>
获取问本内容的函数
希望返回 : 文本内容
获取详细内容的函数
希望返回: <div><font style="color:red">详细内容</font></div>
------解决方案--------------------
function getContentInBody(stype){
var html=document.body.innerHTML;
switch(stype){
case "html":
return html;
break;
return html.replace(/<.*?>/gi,"");
case "text":
break
}
}
------解决方案--------------------
小做改动即可:
<script>
var a='<body xmlns="http://www.w3.org/1999/xhtml"> 文本内容 </body> <body> <BODY> <font style="color:red"> bbb </font> </BODY> </body>'
alert(a.replace(/^<body.*?>(.*?)<\/body>.*$/i,"$1"))
alert(a.replace(/^.*?<body.*?> *<BODY.*?>(.*?)<\/BODY> *<\/body>$/i,"$1"))
</script>
------解决方案--------------------改去了
------解决方案--------------------取巧,只取><之间的
导入prototype1.6.js
JScript code
<script src="prototype1.6.js"></script>
...
var strMessage = ' <message from="rytest230@163.com/resource1" id="rm324_69" to="192168036@163.com/#2285AT2008-1-28 10:12:14" type="chat"> <body> 文本消息 </body> <html xmlns="http://jabber.org/protocol/xhtml-im"> <body xmlns="http://www.w3.org/1999/xhtml"> <BODY> <FONT color="#0000ff" face=""华文行楷"" size="5"> 文本消息2 </FONT> </BODY> </body> </html> <x xmlns="jabber:x:event"> <composing/> </x> </message> '
//arr是一个数组,用于装结果
var arr = [];
strMessage.scan(/(>)(.*?)(<)/, function(match){ if(!match[2].blank()) arr.push(match[2])});
alert(arr.inspect())