js技巧--转义符"\"的妙用(转)

简介:

 

通常,我们在动态给定一个container的innerHTML时,通常是样做的:
< div  id ="divc"   />
< SCRIPT  LANGUAGE ="JavaScript" >
var  div  =  document.getElementById( " divc " );
var  html  =   ""
html 
+=   ""
+   " <h1> "
+   " <a href='javascript:;' onclick=\ " alert( ' javascript ' )\ " >DHTML innerHTML propery.</a> "
+   " </h1> " ;
div.innerHTML 
=  html;
</ SCRIPT >

写得习惯了的话,倒也不麻烦,但有没有更简单的一个方法呢?请看下面的例子:

< SCRIPT  LANGUAGE ="JavaScript" >
var  html = ' \
<table width="100%" border="0" cellspacing="0" cellpadding="0">\
<tr>\
<td>&nbsp;</td>\
</tr>\
<tr>\
<td>&nbsp;</td>\
</tr>\
</table>\
' ;
alert(html);
</ SCRIPT >
是不是没有这么麻烦了?但还是要有几点注意,看下面的例子
< SCRIPT  LANGUAGE ="JavaScript" >
// 要用\'把单引号转义
var  html = ' \
<h1>\
javascript技巧\
</h1>\
<a href="javascript:;" onclick="alert(\
' javascript\ ' )">javascript转义</a></font>\
<br/>\
power by \
' blueDestiny, never - online\ ' \
' ;
alert(html);
</ SCRIPT >
该转义的地方还是得用"\"

'-------------------------------------------------------
' 原理:
'-------------------------------------------------------
这个是我自己的个人观点,如果有不对的地方,请指出:
还是看个例子:
< SCRIPT  LANGUAGE ="JavaScript" >
// s1和s2的字符a前都有一个空格
s1 = ' \
a
' ;
s2
= '  a ' ;
document.write(
" s1:  "   +  s1.length  +   " \ns2:  "   +  s2.length);
</ SCRIPT >
输出结果:
s1: 2 s2: 2
也就是说转义符将回车转义掉了!也就是说
再看个例子:
< SCRIPT  LANGUAGE ="JavaScript" >
// 下面这个字符串是有空格的,也就是这样s1='\ 的。
s1 = '
a
' ;
document.write(
" s1:  "   +  s1.length);
</ SCRIPT >
输出错误,错误提示:未结束字符串常量。
也就是说是多加了一个空格的原因。那再这样试试
< SCRIPT  LANGUAGE ="JavaScript" >
s1
= ' \ \
a
' ;
document.write(
" s1:  "   +  s1.length);
</ SCRIPT >
结果很明显了,在字符串中,"\"转义符可以将回车转义掉(也就是回车符不存在了),但是不能将制表符,以及空格字符转义(它们是存在的,上面的例子说明了这一点)。

最后,给大家一个小tips,还记得上面的这个代码吗?
< SCRIPT  LANGUAGE ="JavaScript" >
// 要用\'把单引号转义
var  html = ' \
<h1>\
javascript技巧\
</h1>\
<a href="javascript:;" onclick="alert(\
' javascript\ ' )">javascript转义</a></font>\
<br/>\
power by \
' blueDestiny, never - online\ ' \
' ;
alert(html);
</ SCRIPT >
仔细观察弹出来的模态框,看看字符串是怎么样的?应该就会明白了。


本文转自Sam Lin博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2007/12/22/1010849.html,如需转载请自行联系原作者


目录
相关文章
|
18天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法
|
3月前
|
JavaScript 前端开发
js实用好用的一些符号 ,你准没用过
js实用好用的一些符号 ,你准没用过
|
9月前
|
JavaScript
js中特殊字符去重写法
js中特殊字符去重写法
34 0
|
JavaScript
js基础笔记学习202正则表达式语法3量词
js基础笔记学习202正则表达式语法3量词
56 0
js基础笔记学习202正则表达式语法3量词
|
JavaScript 前端开发
重温js——正则表达式
正则表达式是一种规则,在语法上各个语言都是一样的,有点是通用性很高,缺点是在平常开发中使用的频率并不是很高,主要使用的范围在用于判断字符串里面的规则。
重温js——正则表达式
|
JavaScript
js 正则表达式获取括号里面的内容
js 正则表达式获取括号里面的内容
js 正则表达式获取括号里面的内容
|
Web App开发 JavaScript 前端开发
标签a的js代码中引号引起的bug
这是long long ago整理的关于html+js出现的bug,这里发一下,免得又把盘隔了就找不到了,同时也祭奠一下当年的青葱岁月。
170 0
标签a的js代码中引号引起的bug
|
JavaScript
js 去掉字符串前后空格
第一种:循环检查替换 //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { ...
1118 0
|
JavaScript
js去掉前后空格
//去前后空格 data=data.replace(/(^\s*)|(\s*$)/g, "");
2011 0
|
JavaScript
JS编程建议——47:避免使用正则表达式的场景
47:避免使用正则表达式的场景
1203 0