在JavaScript里嵌入大量字符串常量的方法
2013-04-23 16:32
218 查看
在JavaScript文件里嵌入大量字符串常量是经常遇到的事。有时为了省事,就把一些界面的HTML和CSS直接写在JS文件里。数量少还好,多的话就密密麻麻的一坨文字,讲究美观的文艺青年们,会用大量的字符连接符号甚至加上缩进,强制换成好几行。例如:
这还好,要是字符串里有不少双引号单引号,那就更麻烦了,各种转义字符看的眼花缭乱。
其实有个不怎么起眼的小技巧,就能解决这个问题。大家总认为字符串必须在"..."或'...'里面,这点没错。但还有一个地方的字符串也能当非代码语义保存下来,那就是一个function的toString,把整个函数的代码当字符串输出——其中的注释部分当然也是保留的!
所以我们写个空函数,里面就一个/**/注释,其中就是我们想要的常量内容。toString后加一个正则就可以提取我们想要的!
马上试试:
OK!就是Chrome里把注释每行前面的Tab去掉了,如果仅仅是放代码的话问题也不大~ 当然有个前提是字符里不能出现*/
尝试下看看: http://www.etherdream.com/funnyscript/js_multiline_const_string.html
值得注意的是,压缩代码的时会过滤注释,需要手动排除一部分。
var html = '<div>' + '<p>Hello</p>' + '<p>World'</p>' + '</div>';
这还好,要是字符串里有不少双引号单引号,那就更麻烦了,各种转义字符看的眼花缭乱。
其实有个不怎么起眼的小技巧,就能解决这个问题。大家总认为字符串必须在"..."或'...'里面,这点没错。但还有一个地方的字符串也能当非代码语义保存下来,那就是一个function的toString,把整个函数的代码当字符串输出——其中的注释部分当然也是保留的!
所以我们写个空函数,里面就一个/**/注释,其中就是我们想要的常量内容。toString后加一个正则就可以提取我们想要的!
马上试试:
var RES_CODE = _TEXT(function(){/* #include <iostream> int main() { std::cout << "Hello world" << std::endl; return 0; } */}); var RES_POEM = _TEXT(function(){/* 更吹落,星如雨。 宝马雕车香满路。 凤箫声动,玉壶光转,一夜鱼龙舞。 蛾儿雪柳黄金缕, 笑语盈盈暗香去。 众里寻他千百度, 蓦然回首,那人却在灯火阑珊处。 */}); var RES_XML = _TEXT(function(){/* <projectDescription> <name>Hello</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>com.adobe.flexbuilder.project.flexbuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.adobe.flexbuilder.project.apollobuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> </projectDescription> */}); function _TEXT(wrap) { return wrap.toString().match(/\/\*\s([\s\S]*)\s\*\//)[1]; } alert(RES_CODE); alert(RES_POEM); alert(RES_XML);
OK!就是Chrome里把注释每行前面的Tab去掉了,如果仅仅是放代码的话问题也不大~ 当然有个前提是字符里不能出现*/
尝试下看看: http://www.etherdream.com/funnyscript/js_multiline_const_string.html
值得注意的是,压缩代码的时会过滤注释,需要手动排除一部分。
相关文章推荐
- 在JavaScript里嵌入大量字符串常量的方法
- 在JavaScript里嵌入大量字符串常量的实现方法
- 嵌入css文件和javascript文件方法
- JavaScript 简介和嵌入 HTML 页面的方法
- JavaScript计算值然后把值嵌入到html中的实现方法
- Javascript中拼接大量字符串的方法
- IE6下出现JavaScript未结束的字符串常量错误的解决方法
- Delphi开发嵌入IE的OCX,调用页面上JavaScript的方法
- 在HTML文档中嵌入JavaScript的四种方法
- 理顺 JavaScript (3) - 把 JavaScript 嵌入网页的方法
- Javascript中拼接大量字符串的方法
- IE6下出现JavaScript未结束的字符串常量错误的解决方法
- 在JavaScript中通过URL传递汉字的方法
- JavaScript sup方法入门实例(把字符串显示为上标)
- javascript调用页面静态方法及其限制
- javaScript调用WordChart控件(C#开发的),js的数据传到C#方法后多了个“空格”
- JavaScript正则-添加千分符的三种方法
- 关于javascript中apply()和call()方法的区别
- javascript 通用定义类继承工具方法