如何替换字符串中的单个反斜杠?例如如果你得到一个类似于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="/"
/>
答案 0 :(得分:0)
您在问题中提供的Javascript已经用正斜杠替换path
中的所有反斜杠。例如,如果@{value}
为c:\\a\\xy\\bn
,那么path
的最终值将为"c:/a/xy/bn"
。
请记住,反斜杠转义是在Javascript中表示反斜杠所必需的。如果您忘记了它们,您的脚本将无效。在最好的情况下,它会给您一个错误(如果@{value}
确实是c:\a\xy\bn
Firefox给出的:
SyntaxError: malformed hexadecimal character escape sequence
但在大多数情况下,Javascript会忽略反斜杠字符,你会得到完全不同的结果。在Chrome和Firefox中,"C:\Program Files\Internet Explorer"
变为"C:Program FilesInternet Explorer"
,这就是您在path
变量中获得的内容。