表示Java中路径的字符串以双反斜杠返回给ajax调用

问题描述

我正在尝试将Java中的字符串返回给ajax调用。该字符串包含应在浏览器中打开的excel文件的本地路径:例如:“ D:\ docs \ file.xls” 问题是当返回in时,返回时带有两个反斜杠,如下所示:“ D:\ docs \ file.xls” 我试图在Java和javascript中使用正则表达式来更正此问题,但使用双反斜杠的路径仍然保持不变。

ajax调用

$.ajax({
        url : baseUrl + "autotest/process",type : 'GET',data : '',dataType : 'text',contentType: 'text/plain',processData: false,success : function(data) {
            //Here data contain a path with double backslash \\
            //even if i try to strip out the \\ as follow:
            var str = data.replace(/\\/g,"\\");
           //str still have the double backslash \\

Java中的控制器:

@RequestMapping(value = "app/process",method = RequestMethod.GET)
    public @ResponseBody String process(HttpServletRequest request,HttpServletResponse response) {
    // code...

    // trying to strip all the double backslash
    String path = str.replaceAll("\\\\\\\\","\\\\");
    // path still have the double backslash \\
    return path;
}

我该如何解决这个问题?

非常感谢您

解决方法

如果您的目标是从\\中删除双反斜杠data,那么您在ajax调用中使用的正则表达式是不正确的。
应该是/\\\\/g而不是/\\/g

var str = data.replace(/\\\\/g,"\\");

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...