javascript中引号嵌套教程

<a href=" javascript:document.write(' <a href=\'www.baidu.com\'>baidu</a> ') ">a-href</a>
语句里面的所有引号,在可以使用转义字符的情况下,单引号和双引号之间可以怎样变化,有几种表示方法?像这样遇到引号嵌套应该怎么套,有规律吗?是不是一般在单引号里面套双引号?
当拼接JS字符串的时候,双引号里面一定要是单引号,单引号里面要是双引号。如此循环!不过全部双引号也可以,就是双引号里面的双引号需要转义!
单引号 双引号嵌套使用时,要注意以下几点就可以了:
1. 单(双)引号开始 单(双)引号结束,配对使用
2. 单引号在前,后面是双引号
3. 双引号在前,单引号在后
4. 单引号在前,后面是双引号 或者 双引号在前,单引号在后,再跟单引号 或双引号的,要加转义符。
(责任编辑:麦田守望者)
 
项目开发中,接触JS是在所难免的,但有时老是出现“未结束的字符串常量”的错误,并且踏破铁鞋无觅处,焦头烂额人郁郁。根据自己的经验和网络上常见的现象,做下总结,以便日后品茗细琢。
大致分为以下三种情况: 
          ①JAVASCRIPT和JSP(或其他网页)文件的编码类型不一致
             现象:
             比如,你的jsp网页用的编码格式是utf-8 ,但是你的js文件用的编码格式却是gb2312。这样文件内部特殊字符因格式不一致就会在解码时出现乱码,从而导致编译器在未到达引号( "或' )前提前结束,产生“未结束的字符串常量”。这种不太容易发现错误。
             解决:            
             如果你的js是外部引用进来的,而不是在jsp页面上编写的,可以在<script type=”text/javascript” src=\'#\'" charset=”###″> 
中设置charset="###"与你的jsp网页编码一致就可以了;如果你的js是在jsp页面上直接编写的,基本排除这种类型的错误,请往下看。
            ②在JAVASCRIPT中,字符串前后标记(如单引号或双引号)不匹配或者嵌套错误 
              现象:            
              这种最常见,也最容易发现错误。字符串中单引号( ' )或双引号( " )前后不配对,或者在document.write()时,没有正确输出单引号( ' )或双引号( " ),还有就是在单双引号嵌套时出现错误。
             解决:
             让前后引号正确配对;           
             共有两层嵌套时,双引号内嵌套单引号是正确的,单引号内嵌套双引号也是正确的。
             共有三层嵌套时,最里面一层引号不能和最外面一层相同,这样是错误的,可以在最里面一层引号前加上转义字符“\”。
             ③传递的参数变量内或者jsp脚本变量中包含HTML标记语言、包含换行符或包含引号
             现象: 
              这种情况是最难发现的,容易忽略了变量内部文字原因产生的,将字符串以参数形式传递给一个函数或者href、action时,该字符串里包含换行符、引号或HTML标记,造成了此错误。如:a.测试时使用单行数据是正常的,未出现这个错误;使用多行数据并使用回车键换行,就出现了此错误,因为里面包含换行符。b.mArray[<%=n_id%>]="<%=loopnum%><><%=n_topic%><><%=state%><><%=n_sendtime%><><%=n_content%>";看似无误,但是<%=n_topic%>、<%=n_content%>中包含了多个单双引号,就出现了此错误。
             解决: 
             对于这种情况,我的解决方法有两个,一个是将字符串变量进行替换操作,将双引号替换成单引号,单引号替换成“\"”,不过这样在传递后读取时还得替换成原文;第二种方法是不直接将数据以参数形式传递,而是先将其赋值给一个隐藏文本内,函数里只需读取文本中的内容即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值