【问题标题】:".Replace" in Google Apps ScriptGoogle Apps 脚本中的“.Replace”
【发布时间】:2014-08-19 15:56:56
【问题描述】:

以下是示例代码中的一行,它将使用 xpath 从 url 中提取数据:

xpath = xpath.replace("/html/","").replace("/tbody","","g");

(其中 xpath 可能类似于:“/html/body/table/tbody/tr[1]/table/tbody/td/tr/td[2]/a”;

我不明白为什么第二个“.replace”可以有三个值? “g”是什么意思?

上面的等价于下面的吗?

xpath = xpath.replace("/html/","");

xpath = xpath.replace("/tbody","","g");

【问题讨论】:

    标签: javascript xpath google-apps-script


    【解决方案1】:

    如果你参考MDN documentationreplace方法,你会注意到语法如下:

    他们描述了最后一个参数,如下所示:

    标志: 注意 - flags 参数是一个非标准的 Mozilla 扩展。指定正则表达式标志组合的字符串。在 String.replace 方法中使用 flags 参数是非标准的。不要使用此参数,而是使用带有相应标志的 RegExp 对象。如果使用此参数的值,则应为由以下一个或多个字符组成的字符串,以影响所描述的操作:

    g: 全局匹配

    我: 忽略大小写

    米: 匹配多行

    是的: 粘人

    在您的代码中,您使用 g ,这意味着它是全局替换,替换字符串中的每个出现。(请注意,这是非标准的,他们建议在正则表达式本身中使用标志,see doc here

    我建议阅读整篇文章,因为它非常清晰,有助于理解你可以用它做什么。

    【讨论】:

      【解决方案2】:

      这是一个 RegEx 全局修饰符。执行全局匹配(查找所有匹配,而不是在第一个匹配后停止)。所有出现的“/tbody”都将被替换,而不仅仅是第一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-07
        • 1970-01-01
        相关资源
        最近更新 更多