' - $ 1'在javascript中是什么意思?

时间:2014-07-25 22:09:58

标签: javascript

我正在尝试弄清楚id的分配在以下代码段中的含义,尤其是'-$1'。我确实看到它正在获取DOM元素文本并交换其他内容,然后降低结果。我只是不明白被交换的内容。

   for (var k in ui) {
      var id = k.replace(/([A-Z])/, '-$1').toLowerCase();
      var element = document.getElementById(id);
      if (!element) {
        throw "Missing UI element: " + k;
      }
      ui[k] = element;
    }

1 个答案:

答案 0 :(得分:6)

  

' - 1'在javascript中是什么意思?

无。但$1替换字符串中的replace是指第一个捕获组,说“在此处包含替换中的第一个捕获组”。 -是要包含在替换中的文字文本。

var id = k.replace(/([A-Z])/, '-$1').toLowerCase();
// Capture group    ^     ^

该调用的作用是将英文字母(A-Z)中的第一个大写字母替换为短划线,后跟字符(然后将.toLowerCase()替换为将字符串转换为全部更低-案件)。例如,“testingABC”变为“testing-abc”。 (这只是第一个大写字母,因为正则表达式上没有“全局”[g]标志。)

在这种特殊情况下,代码不需要使用捕获组,它可以是:

var id = k.replace(/[A-Z]/, '-$&').toLowerCase()

$&指的是整场比赛。