问题描述
我正在尝试将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,"\\");