js 未结束的字符串常量解决方法

发布时间:2019-09-04编辑:脚本学堂
本文介绍了js中未结束的字符串常量的处理方法,有需要的朋友参考下。

js在项目经常会遇到未结束的字符串常量的困扰,有以下几种常见问题与解决方法 :

一就是js文件与页面编码不一致,导致文件内部特殊字符因格式不一致就会在解码时出现乱码,从而导致编译器在未到达引号( "或' )前提前结束,产生“未结束的字符串常量”。

解决办法:如果是外部引入js文件 ,可以在<script type text/javascript” src=”xxx.js” charset=”###″>
中设置charset="###"与你的网页编码一致就可以了;

二  在javascript中,字符串前后标记(如单引号或双引号)不匹配或者嵌套错误
解决办法: 让前后引号正确配对;共有两层嵌套时,双引号内嵌套单引号是正确的,单引号内嵌套双引号也是正确的。共有三层嵌套时,最里面一层引号不能和最外面一层相同,这样是错误的,可以在最里面一层引号前加上转义字符“”。

三 javascript的字符串不能跨行,源码如下 :
 

复制代码 代码示例:
 document.write('<table width=770 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td><img src=../images/f_01.gif border=0 /></td>
    <td><img src=../images/f_02.gif border=0 /></td>
   </tr>
  </table>') 
   line:2 
   char:71 
   code:0 
 

error:未结束的字符串常量 
解决方法:
一种方法用n分隔每一行  源码修改为:
 

复制代码 代码示例:
document.write('<table width=770 border=0 cellpadding=0n cellspacing=0>n<tr>n<td><img src=../images/f_01.gif border=0 /></td>n<td><img src=../images/f_02.gif border=0 /></td>n</tr>n</table>');

另一种方法使用多个document.write输出语句,比如源码修改如下:
1.

复制代码 代码示例:
document.writeln('<table width=770 border=0 cellpadding=0 ');document.writeln('cellspacing=0> '); 
document.writeln('<tr> '); 
document.writeln('<td><img src=../images/f_01.gif border=0 /></td> '); 
document.writeln('<td><img src=../images/f_02.gif border=0 /></td> </tr> '); 
document.writeln('</table>');

 四传递的参数变量内或者脚本变量中包含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中嵌入大量字符串常量