将Javascript Regex结果转换为字符串(?)

Convert Javascript Regex Result to String(?)

本文关键字:字符串 转换 Javascript Regex 结果      更新时间:2023-09-26

我使用一个简单的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;

match返回一个数组,而不是字符串。

返回值

array

一个数组,包含整个匹配结果和任何圆括号捕获的匹配结果,如果没有匹配,则为null。

在你的情况下,你想要这样的东西:

if (vrb1 !== null) {
    var tmp = vrb1[0].split(',');
}
如果未找到结果,

match将返回null

您只需检查null即可。

更换

var tmp = vrb1.split(",");

带有

var tmp = vrb1 || [];

如果找不到结果,这将返回一个空数组。

编辑

看起来您正在按comma进一步拆分结果,然后尝试

var tmp = vrb1 ? vrb1[0].split(",") : [];

或者因为有多个结果(正则表达式中的g

var tmp = vrb1 ? vrb1.join(",").split(",") : [];