数组:无法读取null的属性“0”

时间:2018-03-01 01:18:57

标签: node.js regex

我正在尝试访问str.match返回值的第一个值并得到错误。 console.log(match)可以工作并返回一个数组,但console.log(match[0])没有。

输入字符串:

.test {
    color: black;
    background: url(asd.jpg)
}

功能:

const parseFiles = (data) => {
    const regex = new RegExp(/url\(.*?\)/);
    const match = data.match(regex);
    console.log(match);
};

输出:

[ 'url(asd.jpg)',
  index: 38,
  input: '.test {\n  color: black;\n  background: url(asd.jpg); }\n' ]

使用console.log(match[0])时出错:

TypeError: Cannot read property '0' of null
    at parseFiles (F:\10\dev\PhpStormProjects\sassmann\lib\index.js:36:22)
    at Object.sass.render [as callback] (F:\10\dev\PhpStormProjects\sassmann\lib\index.js:29:9)
    at options.success (F:\10\dev\PhpStormProjects\sassmann\node_modules\node-sass\lib\index.js:308:32)

node -v v9.2.1

我忽略了什么吗?

1 个答案:

答案 0 :(得分:1)

String.prototype.match()

  

如果字符串与表达式匹配,它将返回一个数组   包含整个匹配的字符串作为第一个元素,后跟   括号中捕获的任何结果。 如果没有匹配项,则为null   返回。