正则表达式获取body内容
最近项⽬需要,要弄个正则表达式获取body的内容。
⽤过angularjs就知道,很多时候要写指令时引⽤templateUrl的时候。template的内容root是不能包含多个节点的,否则就报错。
这样的规范很不好,很多时候还是想保留template的头,⽂档类型,css等信息。
所以在开发模式下,希望angularjs加载模板的时候,⾃动砍掉头部和尾部.
获取之前:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="CssScriptLoader.js"></script>
<script src="XZClass.js"></script>
</head>
<body>
<div>内容</div>
</body>
</html>
希望的结果:
<div>内容</div>
所以正则表达式如下:
var REG_BODY = /<body[^>]*>([\s\S]*)<\/body>/;
function getBody(content){
var result = (content);
if(result && result.length === 2)
return result[1];正则表达式获取括号内容
return content;
}
这⾥遇到了个问题,match和exec的区别:
match是返回所有匹配的字符串合成的数组,但是正则表达式必须指定全局g属性才能返回所有匹配,不指定g属性则会返回⼀个只有⼀个元素的数组。
exec永远返回与第⼀个匹配相关的信息,其返回数组包括第⼀个匹配的字串,所有分组的反向引⽤。
开始的时候,正则表达式后⾯我加了g,使⽤了match,死活获取不到括号内的内容,莫名其妙,后⾯搜了match exec。我去,这两个基友的区别真⼤!都怪当时看JAVASCRIPT权威指南的时候太傲,忽
略了细节。以后绝对要细⼼。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论