我使用一个简单的RegExp表达式提取了一个括号内的字符串。我尝试将结果拆分到一个数组中。
但我要买一台"Cannot read property 'split' of null" ERROR。这很奇怪,因为vrb1返回(a, b)。
我已经尝试过用toString()将vrb1转换为字符串,但不起作用。
这个错误会不会是因为RegExp匹配结果?非常感谢您的帮助。
str = sample(a, b);
var regex = new RegExp("[\(]([^\)])+[\)]","g");
var vrb1 = str.match(regex);
var tmp = vrb1.split(",");
return tmp;发布于 2016-05-03 15:12:37
match返回数组,而不是字符串。
返回值
array
一个数组,包含整个匹配结果和任何括号捕获的匹配结果,如果没有匹配,则返回null。
在您的示例中,您需要类似以下内容:
if (vrb1 !== null) {
    var tmp = vrb1[0].split(',');
}发布于 2016-05-03 15:10:30
如果未找到结果,match将返回null。
您也只需要检查是否为null。
替换
var tmp = vrb1.split(",");使用
var tmp = vrb1 || [];如果没有找到结果,这将返回一个空数组。
编辑
看起来您要进一步将结果除以comma,然后尝试
var tmp = vrb1 ? vrb1[0].split(",") : [];或者因为有多个结果(正则表达式中的g)
var tmp = vrb1 ? vrb1.join(",").split(",") : [];https://stackoverflow.com/questions/36997832
复制相似问题