当前位置: 代码迷 >> JavaScript >> 如何用正则表达式获取<BODY></BODY>之间的内容
  详细解决方案

如何用正则表达式获取<BODY></BODY>之间的内容

热度:233   发布时间:2012-06-18 13:23:36.0
怎么用正则表达式获取<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="&quot;华文行楷&quot;"   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())