js在项目经常会遇到未结束的字符串常量的困扰,经php666整理后,加上自己的开发经验为大家列举了以下几种常见的案例以及解决的方案 :
一就是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=0\n 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> '); 2.document.writeln('<tr> '); 3.document.writeln('<td><img src=../images/f_01.gif border=0 /></td> '); 4.document.writeln('<td><img src=../images/f_02.gif border=0 /></td> </tr> '); 5.document.writeln('</table>'); 四传递的参数变量内或者脚本变量中包含HTML标记语言、包含换行符或包含引号:
这种情况是最难发现的,容易忽略了变量内部文字原因产生的,将字符串以参数形式传递给一个函数或者href、action时,该字符串里包含换行符、引号或HTML标记,造成了此错误。如:a.测试时使用单行数据是正常的,未出现这个错误;使用多行数据并使用回车键换行,就出现了此错误,因为里面包含换行符。源码 b.mArray[<%=n_id%>]="<%=loopnum%><><%=n_topic%><><%=state%><><%=n_sendtime%><><%=n_content%>";看似无误,但是<%=n_topic%>、<%=n_content%>中包含了多个单双引号,就出现了此错误。
解决办法:
对于这种情况,我的解决方法有两个,一个是将字符串变量进行替换操作,将双引号替换成单引号,单引号替换成“\"”,不过这样在传递后读取时还得替换成原文;第二种方法是不直接将数据以参数形式传递,而是先将其赋值给一个隐藏文本内,函数里只需读取文本中的内容即可。
|
相关推荐
在JavaScript编程过程中,有时会遇到一个常见的错误提示:“未结束的字符串常量”。这通常意味着在你的代码中,字符串没有被正确地关闭,即没有找到与开头的引号相匹配的结束引号。这种错误可能由多种原因引起,下面...
综上所述,JavaScript报未结束字符串常量错误的原因可能是由于字符串中使用了不正确的字符。解决此类问题通常包括检查字符串中的字符是否为正确的编码类型,确保字符串正确闭合。开发者应该注意编码问题,并利用现代...
本文讨论的问题是JavaScript在IE6下出现“未结束的字符串常量”的错误。这是一个比较常见的错误提示,意味着在JavaScript代码中,某个字符串的结束引号没有被正确找到。字符串常量的错误通常由于编码不一致、引号...
1.JAVASCRIPT引用时,使用的... 这种比较常见,往往在输出字符串时,出现单引号(‘)或双引号(”)不配对,或者是在[removed]()的时候,没有正确输出单引号(‘)或双引号(”) 3.参数内出现HTML标记语言或包含换行符 我今天所遇
在输出结果部分,程序使用了预定义的字符串常量,如`letter`、`digit`和`otherchar`,它们分别用于显示字母、数字和其他字符的计数信息。每个计数器的值会被格式化并输出,最后程序会终止执行。 总的来说,这个程序...
首先,它对输入字符串进行检查,确保其符合JSON的基本格式,例如检查字符串是否以引号开始和结束,以及大括号和中括号的匹配。如果不符合格式,会抛出 `IllegalArgumentException`。 `first()` 和 `next()` 方法...
这可能导致程序运行时出现“未结束的字符串常量”这样的错误。 在DW的代码视图中,你可以清晰地看到字符串中的每个字符,包括换行符。换行符通常会显示为一个空格或者一个明显的断行,使得你能够快速定位并删除它们...
2. **字符串常量**:在多数编程语言中,字符串是以null字符('\0')结尾的字符数组。例如,"Hello"在内存中实际上是{'H', 'e', 'l', 'l', 'o', '\0'}。 3. **操作**:你可以对字符数组进行读取、修改、复制、比较等...
例如,连续的字母数字下划线构成标识符,以 `"` 或 `'` 开始并结束的字符串常量,以及以 `//` 或 `/*` 开始的注释等。 3. **词法单元生成**:一旦匹配成功,就创建相应的词法单元,包含该元素的类型和值。例如,创建...
30. **子字符串截取**:`substring(startIndex, endIndex)`提取从开始到结束索引的子字符串。 31. **数学函数**:`Math.PI`返回圆周率,`Math`对象还包含其他数学常量和函数,如平方根`Math.sqrt()`,随机数`Math....
在 JavaScript 中,数据类型包括字符串(string)、数值型(number)、布尔型(boolean)、null、undefined 和对象(object)。其中数组(array)属于对象,判断数据类型需要使用 typeof() 函数。 变量 变量的命名...
- **区别**:普通方式中,表达式必须是字符串常量;而在构造函数方式中,表达式可以是动态生成的字符串。 ```javascript var input = document.getElementById("input").value; var reg = new RegExp(input, "i...
- `String1.indexOf("String2")`:检查一个字符串是否包含另一个字符串。 ### 38. 获取字符串特定位置的字符 - `StringA.charAt(9)`:返回字符串中指定索引位置的字符。 ### 39. 字符串截取 - `stringA.substring...
1. `startsWith`, `endsWith`, `includes`:这三个方法分别检查字符串是否以指定的字符串开始、结束或包含指定的字符串,提高了代码的可读性。 ```javascript let str = 'my string'; console.log(str.startsWith('...
- 字符串常量:"JavaScript"、'JavaScript'。 - 空值常量:`null`。 变量在JavaScript中无需预先声明,可以随时赋值并确定其类型,但推荐使用`let`、`var`或`const`进行声明以提高代码可读性和避免意外的全局变量。...
33. **查找子字符串**:`String1.indexOf("String2")`返回子字符串在原字符串中的索引,返回-1表示未找到。 34. **字符获取**:`string.charAt(index)`返回字符串中指定位置的字符。 35. **子字符串截取**:`...