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

Java 读取csv文件并在js中发出警报时,SyntaxError:缺少)在参数列表之后,java,javascript,jquery,jsp,Java,Javascript,Jquery,Jsp,获取错误:缺失)在读取csv文件时,在参数列表后,但在我使用javascript发出警报或将其分配给javascript中的任何变量时 <script> <% String csv = ""; try { BufferedReader reader = new BufferedReader(new FileReader("c:/Testing.csv"));

获取错误:
缺失)在读取csv文件时,在参数列表后,但在我使用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>

警报(“”);
var检验=”;
输出:

姓名、政党、省份、年龄、性别

“莫拉尼,玛丽亚”,魁北克BlocQuebecois,43岁,女性

“Sellah,Djaouida”,新民主党,魁北克省,30岁,女性

“利斯圣丹尼斯”,魁北克省新德里市,72岁,女性

“Fry,Hedy”,自由派,不列颠哥伦比亚,71岁,女性

“Turmel,Nycole”,新民主党,魁北克省,70岁,女性

“Sgro,Judy”,自由派,安大略省,68岁,女性

“雷诺尔,弗朗辛”,魁北克国家民主党,67岁,女性

“戴维森,帕特里夏”,保守派,安大略省,66岁,女性

错误:

页面呈现:


您的代码最终呈现为

alert(some text, 
some more text, 
and more);
var test = some text,
some more text,
and more;
这对于文本没有用引号括起来的情况是无效的。即使用引号将其包装,javascript也不支持多行字符串(除非最后转义)

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

//...
csv = csv + text +"\\n";
//...
alert("<%= csv %>");
var test = "<%= csv %>";
/。。。
csv=csv+text+“\\n”;
//...
警报(“”);
var检验=”;
由于您的csv文件也包含双引号,您可以执行以下两种操作之一

用单引号换行

alert('<%= csv %>');
var test = '<%= csv %>';
警报(“”);
var检验='';
但是csv文件中也可能有单引号,并且会触发相同的错误,所以要做的另一件事就是在输出csv文件之前转义csv文件中的双引号

<% csv.replace("\"","\\"");
alert("<%= csv %>");
var test = "<%= csv %>";

1)始终记录异常2)不要将脚本放在JSPB中,但是换行符在cvs文件中不是很重要吗?否则您不知道行的结束位置。我的意思是,我想你可以把
上的整个字符串分成大小为5的块…这应该可以解决它,只需要保留新行,以便在js字符串中使用它。我已经按照@patrick evans建议的方式做了,但仍然不起作用same@Mayur,您是否可以编辑您的问题以显示您是如何实施的,还有可能是实际渲染的源