替换转义字符中的单个反斜杠



如何替换字符串中的单个反斜杠? 例如,如果你得到一个像 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变量中获得的内容。

最新更新