手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >在JavaScript里嵌入大量字符串常量的实现方法
在JavaScript里嵌入大量字符串常量的实现方法
摘要:数量少还好,多的话就密密麻麻的一坨文字,讲究美观的文艺青年们,会用大量的字符连接符号甚至加上缩进,强制换成好几行。例如:复制代码代码如下:v...

数量少还好,多的话就密密麻麻的一坨文字,讲究美观的文艺青年们,会用大量的字符连接符号甚至加上缩进,强制换成好几行。例如:

复制代码 代码如下:

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([sS]*)s*//)[1];

}

alert(RES_CODE);

alert(RES_POEM);

alert(RES_XML);

OK!就是Chrome里把注释每行前面的Tab去掉了,如果仅仅是放代码的话问题也不大~ 当然有个前提是字符里不能出现*/

值得注意的是,压缩代码的时会过滤注释,需要手动排除一部分。

【在JavaScript里嵌入大量字符串常量的实现方法】相关文章:

javascript中this的四种用法

JavaScript中用于生成随机数的Math.random()方法

JavaScript中的italics()方法的使用介绍

JavaScript中的fontsize()方法使用介绍

JQuery中两个ul标签的li互相移动实现方法

javascript实现树形菜单的方法

JavaScript中length属性的使用方法

Javascript 字符串模板的简单实现

javascript模拟评分控件实现方法

javascript验证邮件地址和MX记录的方法

精品推荐
分类导航