【问题标题】:javascript match implicit variablejavascript匹配隐式变量
【发布时间】:2019-10-17 16:43:28
【问题描述】:

我无法确定 javascript 中是否存在 隐式变量 用于匹配结果。

我正在寻找的结果代码是这样的:

if(line.match(/foo{bar}/)) {
  console.log(bar_variable)
}

引用的 ^ bar_variable 应包含匹配组结果。 有这样的吗?

【问题讨论】:

    标签: javascript regex variables match implicit


    【解决方案1】:

    不,没有。 String.match() returns:

    Array,其内容取决于全局 (g) 标志的存在与否,如果未找到匹配项,则为 null

    所以你可以这样做:

    if (bar_variable = line.match(/foo{bar}/)) {
      console.log(bar_variable)
    }
    

    为了避免使用全局符号,你可以这样做,但它确实让它有点难看:

    {
      let bar_variable;
      if (bar_variable = line.match(/foo{bar}/)) {
        console.log(bar_variable);
      }
    }
    

    据我所知,你不能这样做 if (let x = ...),但我可能是错的。

    【讨论】:

    • 谢谢,这实际上看起来有点像解决方案,但创建全局变量很痛苦。
    • 更新以展示如何避免全局,但您可能已经知道了。
    猜你喜欢
    • 2021-02-05
    • 2023-03-04
    • 2013-08-15
    • 1970-01-01
    • 2015-07-06
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多