网站首页 > 技术文章 正文
最近项目需要,要弄个正则表达式获取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>
希望的结果:
所以正则表达式如下:
var REG_BODY = /<body[^>]*>([\s\S]*)<\/body>/; function getBody(content){ var result = REG_BODY.exec(content); if(result && result.length === 2) return result[1]; return content; }
这里遇到了个问题,match和exec的区别:
match是返回所有匹配的字符串合成的数组,但是正则表达式必须指定全局g属性才能返回所有匹配,不指定g属性则会返回一个只有一个元素的数组。
exec永远返回与第一个匹配相关的信息,其返回数组包括第一个匹配的字串,所有分组的反向引用。
开始的时候,正则表达式后面我加了g,使用了match,死活获取不到括号内的内容,莫名其妙,后面搜了match exec。我去,这两个基友的区别真大!都怪当时看JAVASCRIPT权威指南的时候太傲,忽略了细节。以后绝对要细心。
- 上一篇: 告别2015,迎接2016:说说2015年我读过的那些书
- 下一篇: 零基础如何自学前端?
猜你喜欢
- 2025-05-18 JavaScript初学者指南
- 2025-05-18 初学者如何学习Javascript?
- 2025-05-18 Web 前端怎样入门?
- 2025-05-18 Node.js是什么?又能做什么?
- 2025-05-18 JavaScript类型指南,如何进行类型判断
- 2025-05-18 学了一个月 JavaScript 为什么还是学不会?
- 2025-05-18 好的项目,万物皆可打包,我将Vue项目打包成客户端(模拟钉钉)
- 2025-05-18 学前端所用手册及书籍(学前端必备手册全都有)
- 2025-05-18 好程序员:2023年前端入门书籍推荐,零基础小白闭眼入!
- 2025-05-18 前端学习路线(附路线图)
- 最近发表
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- think in java (14)
- javascript权威指南 (19)
- nfs (25)
- componentart (17)
- yii框架 (14)
- springbatch (28)
- oracle数据库备份 (25)
- iptables (21)
- 自动化单元测试 (18)
- python编写软件 (14)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- dfn (14)
- http error 503 (21)
- pop3服务器 (18)
- 图表组件 (17)
- android退出应用 (21)