ASP,VB,JAVASCRIPT 拼HTML时多层单引号双引号嵌套用法,实用
s、html中的单引号、双引号及其转义使用(转) 收藏
在js中对相关字符做判断或取值,或者拼HTML赋值的时候很多情况下都会用到这些,也是我刚刚遇到的问题,通过参考下面的这篇文章,一切都解决了,摘抄下来做个笔记!呵呵...
------
在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input value="Test" type="button" onclick="alert(""OK"");" />
IE提示出错后,再漫不经心地改为:
<input value="Test" type="button" onclick="alert(\"OK\");" />
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
<input value="" type="button" onclick="alert(‘OK‘);" />
但为什么javascript中的转义字符\没有效果了呢?
后来找到一段正常的代码:
<input value="Test" type="button" onclick="alert("OK");" />
这时才理解,原来这时,还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的。两个双引号的做法是 vbScript的,\"这种做法则是javascript的,而HTML的,则是用",此外还可以使用:"、'。
下面列出各种表达方法:
<html>
<body>
<input value="外双引号内双引号-错误" type="button" onclick="alert("OK");" /><br />
<input value="外单引号内单引号-错误" type="button" onclick=‘alert(‘OK‘);‘ /><br />
<input value="两个双引号-错误" type="button" onclick="alert(""OK"");" /><br />
<input value="两个单引号-错误" type="button" onclick="alert(‘‘OK‘‘);" /><br />
<input value="\+双引号-错误" type="button" onclick="alert(\"OK\");" /><br />
<input value="\+单引号-错误" type="button" onclick="alert(\‘OK\‘);" /><br />
<input value="外双引号内单引号-OK" type="button" onclick="alert(‘OK‘);" /><br />
<input value="外单引号内双引号-OK" type="button" onclick=‘alert("OK");‘ /><br />
<input value="外部不使用引号-OK" type="button" onclick=alert(‘OK‘);alert("OK"); /><br />
<input value="HTML转义字符"(& # 3 4 ;)-OK" type="button" onclick="alert("OK");" /><br />
<input value="HTML转义字符‘(& # 3 9 ;)-OK" type="button" onclick="alert(‘OK‘);" /><br />
<input value="HTML转义字符"(& # x 2 2 ;)-OK" type="button" onclick="alert(‘OK‘);" /><br />
<input value="HTML转义字符‘(& # x 2 7 ;)-OK" type="button" onclick="alert(‘OK‘);" /><br />
<input value="HTML转义字符"(& q u o t ;)-OK" type="button" onclick="alert("OK");" /><br />
<input value="HTML转义字符'(& a p o s ;)-IE错误" type="button" onclick="alert('OK');" /><br />
<input value="其它\\-错误" type="button" onclick="alert(\\"OK\\");" /><br />
<input value="其它\& # 3 4 ;-错误" type="button" onclick="alert(\"OK\");" /><br />
</body>
</html>
1,双引号"" ASP中处在双引号中的可以是任意的字符、字符串,HTML代码。 比如 <%response.write ("cnbruce here")%><hr> <%response.write ("<b>cnbruce here</b>")%> 产生的页面效果分别是:默认文字和加粗文字“cnbruce here” 下面再想想,如果我要在输出的页面文字上加一颜色效果该怎么办? 1,一般文字颜色这样写:<font color="#0000ff">cnbruce</font> 2,response.write写法是这样的:response.write("输入显示的内容") 3,如果要将上面超链接代码放到response.write中,有没有发现write方法中 的双引号和color中的双引号形成嵌套效果, 势必形成response.write("<font color="#0000ff">cnbruce</font>") 4,调试结果不容乐观,因为color的前引号和write的前引号形成匹配,内容 为<font color=;同样color的后引号也就和write的后引号匹配了,内容为: >cnbruce</font>。最终结果是:中间的 #0000ff 被孤单了。 5,所以为了结果正确,你可以将 #0000ff 当成字符串放在双引号里面,然后该字 符串与前字符串<font color=和后字符串>cnbruce</font>中间的连接就采用&号 最后结果如下: <% response.write("<font color=" & "#0000ff" & ">cnbruce</font>") %> 2,单引号‘‘ 正如学习语文课一样,继续放在双引号中的引号可以采用单引号。 那么上面一条语句response.write("<font color="#0000ff">cnbruce</font>")中的 #0000ff就可以将其双引号变为单引号: response.write("<font color=‘#0000ff‘>cnbruce</font>"), 这样执行同样正确。 3,连接字符&号 ASP中&号的主要作用是用来连接的,包括:字符串-字符串、字符串-变量、变量-变量等混合连接。 比如下面一例题: <% mycolor="#0000ff" response.write ("<font color=‘ "&mycolor&" ‘>" & "cnbruce" & "</font>") %> 其中极需要注意的是:color的单引号中又采用了双引号~!你也许会糊了,慢慢看。 1,现在是自己定义了一个变量mycolor,按照原则,变量放在response.write里面是不 需要加双引号的,因为加了双引就表示是字符串,而非变量啊。 2,所以response.write如果要输出变量可以直接这样写:response.write(mycolor) 3,但是,现在。我们的变量一定要是放在双引号中的(比如上面程序是放在单引中), 那具体的response.write又该如何书写呢? 4,关键写法:将ASP中的变量继续添加左右的"&包括,就可以放到response.write的引号中了,效果即为:response.write(" "&mycolor&" ") 5,分析response.write(" "&mycolor&" "),其实还就是前一空字符串连接mycolor变量再连接后一字符串嘛。 6,所以,现在对于上方的ASP整个例题应该有所领悟了吧。 继续强化加深 <% mycolor="#0000ff" response.write ("<font color=‘ "&mycolor&" ‘>" & mycolor & "</font>") %> 这个里面就包含了字符串,变量以及变量在引号中的使用。相信你也就能够明白了吧。 最后,你还可以进行HTML和ASP的混合使用。 <%mycolor="#0000ff"%> <font color=<%=mycolor%>><%=mycolor%></td> 有很重要的一点还是没有讲,双引号的转义问题。 vbscript中如果需要在字符串里使用双引号,需要转义,就如同javascript,c等语言中的转义意思一样 在vbscript中,双引号的转义方法是书写两个双引号,即"",比如 Response.write "I say ""you are so clever!""" 输出的结果就是:I say "you are so clever!" 使用转义的目的有两个: 1、当然是需要用到双引号的地方必须用双引号 2、不建议输出html代码时,属性值部分不加引号或者只加单引号(为什么?因为W3C的标准是必须加双引号的) 也即如此 Response.write "<a href="""+rs("link")+""" target=""_blank"">"+rs("title")+"</a>" 红色引号部分为双引号转义输出,蓝色引号部分是字符串定义边界 或许你会觉得这样写不利于阅读,但习惯就好,而且最好就习惯这样写 另外建议&号用要用的谨慎,因为&号在做连接时,可以把数字类型和逻辑类型自动转换成字符串类型,即 b=true n=1 s="abcd" Response.Write s&n&b 输出结果时 abcd1True 这样并不好,养成这样的坏习惯后,在操作sql语句,有时会出现令你头疼的无法预料的错误,所以,如果要使用&号做为连接,必须显式的把数字类型和布尔类型转换成字符类型,即用Cstr函数。如此,&的功能和+在做为字符串连接时的功能就一致了。建议是千万别贪图小便宜来。程序员必须严谨。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。