首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError:缺少)在读取csv文件并在js中发出警报时,后面的参数列表

SyntaxError:缺少)在读取csv文件并在js中发出警报时,后面的参数列表
EN

Stack Overflow用户
提问于 2014-07-15 07:16:14
回答 1查看 470关注 0票数 0

获取错误:在读取csv文件时使用missing ) after argument list,但当我在javascript中发出警报或将其分配给javascript中的任何变量时。

代码语言:javascript
复制
<script>
    <% 
        String csv = "";
        try {
            BufferedReader reader = new BufferedReader(new FileReader("c:/Testing.csv"));
            String text = "";
            while ((text = reader.readLine()) != null) {
                csv = csv + text;
            }
        }
        catch(Exception e) {}
    %>
    alert("<%= csv %>");
    var test = "<%= csv %>";
</script>

输出:

姓名、党、省、年龄、性别 “莫拉尼,玛丽亚”,BlocQuebecois,魁北克,43岁,女性 "Sellah,Djaouida",NDP,魁北克,30岁,女性 “,Lise",NDP,魁北克,72岁,女性 “弗莱,海迪”,自由党,英国哥伦比亚大学,71岁,女性 "Turmel,Nycole",NDP,魁北克,70岁,女性 “快板,朱迪”,自由党,安大略省,68岁,女性 "Raynault,Francine",NDP,魁北克,67岁,女性 "Davidson,Patricia",保守党,安大略省,66岁,女性

错误:

页面呈现:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-15 07:39:51

您的代码最终将呈现如下所示

代码语言:javascript
复制
alert(some text, 
some more text, 
and more);
var test = some text,
some more text,
and more;

对于没有用引号包装的文本来说,这是无效的。即使您用引号包装它,javascript也不支持多行字符串(除非在末尾转义)。

因此,您需要转义反斜杠,以便保留新行,然后在js字符串中进行解析。并将输出用引号包装。

代码语言:javascript
复制
//...
csv = csv + text +"\\n";
//...
alert("<%= csv %>");
var test = "<%= csv %>";

由于csv文件还包含双引号,所以您可以执行以下两项操作之一

用单引号包装

代码语言:javascript
复制
alert('<%= csv %>');
var test = '<%= csv %>';

但是csv文件中也可能包含单引号,并且会触发相同的错误,所以在输出csv文件之前,要做的另一件事就是先转义csv文件中的双引号。

代码语言:javascript
复制
<% csv.replace("\"","\\"");
alert("<%= csv %>");
var test = "<%= csv %>";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24752111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档