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

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

// blueDestiny, never-online // blueDestiny [at] 126.com

通常,我们在动态给定一个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> </td>\
</tr>\
<tr>\
<td> </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>
仔细观察弹出来的模态框,看看字符串是怎么样的?应该就会明白了。

时间: 2024-08-23 15:37:58

js技巧--转义符"\"的妙用的相关文章

Backbone 模板 underscore template默认的转义符&lt;%= %&gt; 与jsp的冲

先定义转义符,因为默认的转义符<%= %> 与jsp的冲突(如果js模板写在jsp页面中)       _.templateSettings = { interpolate : /\{\{(.+?)\}\}/g }; 下面就可以这样写 <script type="text/template" id="detailedBar-template"> <div class='title'> <span class='label'&

C之接续符和转义符(十二)

我们今天来介绍下 C 语言中比较少见的两种符号,接续符和转义符.其实也不少见啦,只是我们平时不太注意罢了,下来我们就介绍下这两种. 我们首先来介绍下接续符(\).那么接续符到底是什么呢?它是C 语言中指示编译器行为的利器.我们如何来使用接续符呢?编译器会将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行:在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格:接续符适合在定义宏代码块时使用. 我们下来用宏代码来实现一个交换数值功能的代码,这个题同样是笔试中常见的题型之一.代码如下:

Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &amp;quot&#183;&#183; HTML转义符

Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Raw(JsonUtil.ToJson(VieBag.data)); } <script> var data = JSON.parse(@jsonStr); </script> ViewBag.Data = list; <script type="text/javascri

转义符

前段时间学的知识,为免忘记,一点点整理. 转义符 代表的意义 \" 双引号 \' 单引号 \n 换行符 \t 制表符(相当于按下了Tab键) \\ 斜杠\ 在代码中书写一个斜杠(\)用于改变\后出现字符的意义. " " 代表字符串的开始和结束. \" 普通的双引号字符. 例: Tom said:" Hello !" Console.Write("Tom said :\"Hello!\" ") \t 制表符 例: 你 好 (相当于按下了Tab键) Console.Writeli

多命令顺序执行,单引号,双引号,反引号,转义符

多命令顺序执行 ; 多命令顺序执行 && 逻辑与 前命令执行ok,后面进行 || 逻辑或 前命令执行失败 后面执行 | 命令1|命令2 命令1结果,让命令来处理通配符 ?匹配任意一个字符 * 匹配0个或者多个任意字符 [] 匹配中括号中的任意一个字符 [-] 匹配括号中的任意一个字符 [^] 逻辑非 匹配不是中括号中的任意一个字符 [[email protected] biji]# aa=666 [[email protected] biji]# echo $aa #打印变量aa666[[

常量与转义符和运算符

一.常量 常量也有数据类型, 有常量值, 但是常量不能改变值, 不能再赋值.   赋值方式为: final int A=100;(正确) 错误赋值方式为: final int A=100;          A=101; 常量可赋值,也可不赋值,也可之后赋值(但是不推荐,容易忘记赋值). final int A;      A=100; 常量申请注意事项:   1.常量名称所有字母大写(书写规范,方便查看,如果小写不报错). final int AGE=100; 2.在很大数字(位数很多)的时候

iOS 去除JSON里的转义符

iOS 去除JSON里的转义符 今天帮朋友弄这个问题,json返回全都是带'\'的,于是要去掉这个反斜杠,但是OC里面的'\'是转义符,不能直接用@"\"之类的表示,一顿搜索之后,找到了OC对转义字符的表示方法,如下: \a - Sound alert\b - 退格\f - Form feed\n - 换行\r - 回车\t - 水平制表符\v - 垂直制表符\\ - 反斜杠\" - 双引号\' - 单引号 那么知道如何表示'\',去掉这个就是一个遍历的事了.代码如下: NS

C#语言基础知识(3):C#中转义符

C#转义字符: 一种特殊的字符常量:以反斜线"\"开头,后跟一个或几个字符.具有特定的含义,不同于字符原有的意义,故称“转义”字符.主要用来表示那些用一般字符不便于表示的控制代码. 它的作用是消除紧随其后的字符的原有含义用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义” 用可以看见的字符表示那不可以看见的字符, 如'\n'表示换行 常用的转义字符及其含义: \’ 单引号\” 双引号\\ 反斜杠\0 空\a 警告(产生峰鸣)\b 退格\f 换页\

翻页转义符

上一页 .下一页转义符 case "first":     return "«";//<< case "prev":     return "‹";//< case "next":     return "›";//> case "last":     return "»";//>>