js在项目经常会遇到未结束的字符串常量的困扰,有以下几种常见问题与解决方法 :
一就是js文件与页面编码不一致,导致文件内部特殊字符因格式不一致就会在解码时出现乱码,从而导致编译器在未到达引号( "或' )前提前结束,产生“未结束的字符串常量”。
解决办法:如果是外部引入js文件 ,可以在<script type text/javascript” src=”xxx.js” charset=”###″>
中设置charset="###"与你的网页编码一致就可以了;
二 在javascript中,字符串前后标记(如单引号或双引号)不匹配或者嵌套错误
解决办法: 让前后引号正确配对;共有两层嵌套时,双引号内嵌套单引号是正确的,单引号内嵌套双引号也是正确的。共有三层嵌套时,最里面一层引号不能和最外面一层相同,这样是错误的,可以在最里面一层引号前加上转义字符“”。
三 javascript的字符串不能跨行,源码如下 :
error:未结束的字符串常量
解决方法:
一种方法用n分隔每一行 源码修改为:
另一种方法使用多个document.write输出语句,比如源码修改如下:
1.
四传递的参数变量内或者脚本变量中包含html标记语言、包含换行符或包含引号:
这种情况是最难发现的,容易忽略了变量内部文字原因产生的,将字符串以参数形式传递给一个函数或者href、action时,该字符串里包含换行符、引号或html标记,造成了此错误。如:a.测试时使用单行数据是正常的,未出现这个错误;使用多行数据并使用回车键换行,就出现了此错误,因为里面包含换行符。源码 b.marray[<%=n_id%>]="<%=loopnum%><><%=n_topic%><><%=state%><><%=n_sendtime%><><%=n_content%>";看似无误,但是<%=n_topic%>、<%=n_content%>中包含了多个单双引号,就出现了此错误。
解决办法:
一个是将字符串变量进行替换操作,将双引号替换成单引号,单引号替换成“"”,不过这样在传递后读取时还得替换成原文;
第二种方法是不直接将数据以参数形式传递,而是先将其赋值给一个隐藏文本内,函数里只需读取文本中的内容即可。
未结束的字符串常量怎么解决
js未结束的字符串常量异常解决方法
未结束的字符串常量和转义符用法
JS报未结束字符串常量错误怎么解决
替换js字符串常量为变量
js 未结束的字符串常量错误怎么解决
如何在JavaScript中嵌入大量字符串常量