如何替换字符串中的单个反斜杠? 例如,如果你得到一个像 Windows 路径这样的字符串,那么所有反斜杠都会转义以下字符。
<macrodef name="resetproperty" >
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<script language="javascript">
<![CDATA[
var path="@{value}";
path=path.replace(/\/g, "/");
project.setProperty('@{name}',path);
]]>
</script>
</sequential>
</macrodef>;
如果我在蚂蚁端执行替换,它与命令一起使用
<propertyregex property="backslash"
input="${path}"
global="true"
regexp="\"
replace="/"
/>
您在问题中给出的 Javascript 已经将path
中的所有反斜杠替换为正斜杠。例如,如果@{value}
c:\a\xy\bn
,则path
的最终值将为"c:/a/xy/bn"
。
请记住,反斜杠转义对于在 Javascript 中表示反斜杠是必需的。如果您忘记了它们,您的脚本将无法运行。在最好的情况下,它会给你一个错误(如果@{value}
实际上是火狐给出的c:axybn
:
SyntaxError: malformed hexadecimal character escape sequence
但在大多数情况下,Javascript 会简单地忽略反斜杠字符,你会得到完全不同的结果。在Chrome和Firefox中,"C:Program FilesInternet Explorer"
变得"C:Program FilesInternet Explorer"
,所以这就是您将在path
变量中获得的内容。