1

当我将文件路径(例如'C:\u01\oracle\fmw_11114\data\proj\folder\name 09022014.txt,从 java 控制器传递到 javascript 脚本)时,会导致错误“ Expected hexadecimal Digit”。

此路径是从文件系统读取并直接传递给脚本,在将字符串传递给脚本之前,我无法转义字符串中的反斜杠“\”。任何想法如何解决这个问题?

if(document.getElementById('hdnA').value == 'ALR') {
     alert('ERROR: ' + '${arch}' + ' file not found.')
}
4

2 回答 2

8

错误消息是一个很好的指示出了什么问题。

Unicode 字符可以使用以下格式直接传递给脚本:\uXXXX(其中 XXXX 表示特定字符​​的代码)。

您的路径包含名称以 U 开头的文件夹,因此路径字符串包含用于文字 Unicode 字符插入 (\u) 的文字控制字符。

一个简单的解决方法是使用正斜杠传递文件路径:

'C:/u01/oracle/fmw_11114/data/proj/folder/name 09022014.txt'

我的 Java 应用程序遇到了同样的问题,它尝试在元素中动态插入带有路径值的脚本。将我的反斜杠更改为正斜杠为我解决了这个问题。

于 2012-12-24T11:06:19.247 回答
1

萨拉姆!使用这个正则表达式:

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

这对我有用;

于 2016-02-05T08:10:32.457 回答